Podziel się wiedzą: systemd

9b91521dd3d020edb72521181aa32c9f?s=47 Tomasz
October 14, 2010

Podziel się wiedzą: systemd

Wewnętrzna prezentacja dla pracowników UTC Fire&Security.

9b91521dd3d020edb72521181aa32c9f?s=128

Tomasz

October 14, 2010
Tweet

Transcript

  1. systemd wymyślmy jeszcze jedno koło Podziel Się Wiedzą Podziel Się

    Wiedzą Tomasz Torcz Tomasz Torcz <tomasz.torcz@fs.utc.com> <tomasz.torcz@fs.utc.com>
  2. Rozdzielnik co to jest init? jaką ma rolę? dlaczego systemd?

  3. SystemV init PID 1 /etc/inittab sysinit: initdefault: http://en.wikipedia.org/wiki/Init#Other_styles

  4. Mamo, skąd się biorą procesy? - boot - cron, at

    - inetd - D-Bus activation
  5. Autorzy systemd% git log --format=%an | sort -u | wc

    -l 37 Kay Sievers, Lennart Poettering >10 commitów Pomysły: reszta świata
  6. Usługi to nie wszystko usługi gniazda punkty mountowania pliki, katalogi

    upływ czasu urządzenia, cele
  7. Ale mu już mamy koło! /etc/init.d/* /etc/fstab /etc/init/* kernel command

    line (emergency, single itp.)
  8. Usługi zależności restartowanie demonizacja limity (CPU, I/O, mem)

  9. Usługi - kontrola WorkingDirectory= RootDirectory= User= Group= SupplementaryGroups= Nice= OOMScoreAdjust=

    IOSchedulingClass= IOSchedulingPriority= CPUSchedulingPolicy= CPUSchedulingPriority= CPUSchedulingResetOnFork= CPUAffinity= UMask= Environment= EnvironmentFile= StandardInput= StandardOutput= StandardError= TTYPath= SyslogIdentifer= SyslogFacility= SyslogLevel= SyslogLevelPrefix= TimerSlackNSec= LimitCPU= LimitFSIZE= LimitDATA= LimitSTACK= LimitCORE= LimitRSS= LimitNOFILE= LimitAS= LimitNPROC= LimitMEMLOCK= LimitLOCKS= LimitSIGPENDING= LimitMSGQUEUE= LimitNICE= LimitRTPRIO= LimitRTTIME= PAMName= TCPWrapName= Capabilities= SecureBits= CapabilityBoundingSetDrop= ControlGroup= ReadWriteDirectories= ReadOnlyDirectories= InaccessibleDirectories= PrivateTmp= MountFlags=
  10. Gniazda kompatybilność (x)inetd niezrywalne połączenia przykład: syslog pełna kontrola

  11. Gniazda - kontrola BindIPv6Only= Backlog= BindToDevice= SocketMode= MaxConnections= KeepAlive= Priority=

    ReceiveBuffer= SendBuffer= IPTOS= IPTTL= Mark= PipeSize= FreeBind= TCPCongestion=
  12. Urządzenia współpraca z udev start aplikacji zależny od sprzętu

  13. Timery cykliczne czynności: czyszczenie raportowanie w przyszłości cron

  14. Wymagania jądro 2.6.32 devtmpfs D-Bus 1.4.0 udev 151

  15. Podsumowując lepsza kontrola – restarty, limity OnFailure pilnowanie zależności mniej

    kodu: demonizowanie, sockety
  16. Podsumowując 2 zintegrowanie usług dystrybucyjnych (random seed, clock) ujednolicenie skryptów

    startowych szybki start, zintegrowany readahead
  17. avahi-daemon.socket [Unit] Description=Avahi mDNS/DNS-SD Stack Activation Socket [Socket] ListenStream=/var/run/avahi-daemon/socket [Install]

    WantedBy=sockets.target
  18. avahi-daemon.service [Unit] Description=Avahi mDNS/DNS-SD Stack Requires=avahi-daemon.socket After=syslog.target [Service] Type=dbus BusName=org.freedesktop.Avahi

    ExecStart=/usr/sbin/avahi-daemon -s ExecReload=/usr/sbin/avahi-daemon -r NotifyAccess=main [Install] WantedBy=multi-user.target Also=avahi-daemon.socket
  19. systemctl status # systemctl status avahi-daemon.service avahi-daemon.service - Avahi mDNS/DNS-SD

    Stack Loaded: loaded (/lib/systemd/system/avahi-daemon.service) Active: active (running) since [Sat, 18 Sep 2010 23:32:54 +0200; 16h ago] Main PID: 3300 (avahi-daemon) Status: "Server startup complete. Host name is dhartha.local. Local service cookie is 966442585." CGroup: name=systemd:/systemd-1/avahi-daemon.service ├ 3300 avahi-daemon: running [dhartha.local] └ 3305 avahi-daemon: chroot helper
  20. status mount # systemctl status boot.mount boot.mount - /boot Loaded:

    loaded Active: active (mounted) since [Sat, 18 Sep 2010 23:32:54 +0200; 16h ago] Where: /boot CGroup: name=systemd:/systemd-1/boot.mount
  21. systemd: wymyślmy jeszcze jedno koło Podziel Się Wiedzą Podziel Się

    Wiedzą Tomasz Torcz Tomasz Torcz <tomasz.torcz@fs.utc.com> <tomasz.torcz@fs.utc.com>
  22. na koniec co nam daje lepsza kontrola – restarty, limity

    pilnowanie zależnosci nie trzeba pisac kodu do demonizowania, otwierania socketow itp. typowo dystrybucyje (random seed, clock) zintegrowane ujednolicenie skryptow startowych miedzy dystrybucjami syslog lekarstwo na raka OnFailure szybki start, zintegrowany readahead