systemd: wymyślmy jeszcze jedno koło



Podobne dokumenty
Administracja serwerami

Administracja systemem Linux

Bezpieczeństwo systemu GNU/Linux - podstawy. Robert Jaroszuk <zim@iq.pl>

systemd ściągawka Zimowisko TLUG 2014 Tomasz Torcz

Puk, puk! Kto tam? Eeeee... Spadaj!

ĆWICZENIE NR 4 KONFIGURACJA JĄDRA, USŁUGI SIECIOWE. KATEDRA ELEKTRONIKI POLITECHNIKA LUBELSKA

kontener aplikacyjny nie tylko dla programistów Łukasz Piątkowski Poznańska Impreza Wolnego Oprogramowania 2014

System operacyjny Linux

kontener aplikacyjny nie tylko dla programistów Łukasz Piątkowski Koło Naukowe SKiSR

Bacula - howto. W sutuacji gdy posiadamy firewalla należy go odpowiednio zmodyfikować (na przykładzie iptables ):

Instalacja postgresa wersja step by step. 1. Dla nowego systemu, na którym nie było wcześniej instalowanych postgresów

Spanning Tree to samo zło, czyli Protekcja Ringu w Ethernecie na podstawie wdrożenia w sieci Leon

FORMA SZKOLENIA MATERIAŁY SZKOLENIOWE CENA CZAS TRWANIA

Automatyczna instalacja oraz zmiana konfiguracji w ramach całego klastra.

Konfiguracja platformy sprzętowej BeagleBone Black Debian.

Wdrożenie skalowalnego systemu plików GlusterFS w serwisach Gratka.pl. Łukasz Jagiełło l.jagiello@gratka-technologie.pl

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

Wstęp do systemu Linux

X11R5. .Xresources. Pliki konfiguracyjne X-Windows. Zasada działania X11. .xinitrc. X protocol X server. X client. X library

Administracja serwerami

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Very Secure FTP Server (vsftpd)

Rozproszony system kontroli wersji GIT. Piotr Macuk

PRZETWARZANIE ROZPROSZONE ZADAN` Mariusz Gil 4Developers 2012, Poznań

Sprawozdanie z zadania 2. Artur Angiel, śr. 12:15

Przykład połączenie z bazą danych

Linux Contextualization

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

IBM PureSystems Czy to naprawdę przełom w branży IT?

Bash - wprowadzenie. Bash - wprowadzenie 1/39

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Laboratorium Programowania Kart Elektronicznych

Undervolting pod Linuksem

trainxx tramxx

Wstęp do informatyki Shell podstawy

Podstawy zabezpieczania serwera. Marcin Bieńkowski

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

Skrypty shella programowanie w języku powłoki.

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Kontenery w Linux. Jakub Pieńkowski 10 maja, Jakub Pieńkowski Kontenery w Linux 10 maja, / 26

Technologie Obiektowe PK WFMI 2010/2011

Sieci komputerowe. Wstęp do systemu Linux/UNIX, część I. Ewa Burnecka / Janusz Szwabiński. ewa@ift.uni.wroc.pl / szwabin@ift.uni.wroc.

1 Przygotował: mgr inż. Maciej Lasota

Testy penetracyjne Przykłady programów

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski 31 sierpnia 2015

Problemy techniczne SQL Server

ZADANIE.02 Cisco.&.Juniper Podstawy konfiguracji (interfejsy) Zarządzanie konfiguracjami

Dariusz Puchalak. 20 lat Linux/Unix Sysadmin 8+ lat trener Od prawie roku w OSEC

W celu uruchomienia kontrolera należy w katalogu głównym kontrolera z wiersza poleceń wydać następujące polecenie: $ java -jar target/floodlight.

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Współczesne systemy komputerowe

Wprowadzenie. Co to jest ClamAV Omówienie nowej wersji programu Kilka przykładów zastosowań Implementacja ClamAV jako skanera poczty w Sendmailu

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

INFORMATOR TECHNICZNY WONDERWARE

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE


IEEE Centronics

Narzędzia zarzadzania i monitorowania w systemach Linux

1. Napisz skrypt w sh który wyświetla date, uptime, i posortowaną liste zalogowanych użytkowników razem z ich uid i grupami

This is CS 50. Harvard College s Introduction to Computer Science I \ DAVID J. MALAN 99 WEEK 2

Integracja z systemem Nagios

BIG SISTER SYSTEM MONITORINGU SIECI DLA LINUX/UNIX I WINDOWS. Michał (traq) Żuchowski. traq@shl.pl

SPIS TREŚCI 1. WIADOMOŚCI OGÓLNE ZARZĄDZANIE SYSTEMEM LINUX WIELODOSTĘPNOŚĆ SYSTEMY PLIKÓW I STRUKTURA FOLDERÓW...

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

Podstawowa konfiguracja routerów. Interfejsy sieciowe routerów. Sprawdzanie komunikacji w sieci. Podstawy routingu statycznego

Materiały dla studentów Sieci Komputerowe. Aby zainstalować usługę Active Directory dla nowej domeny, należy wykonać następujące kroki:

Jądro Powłoka System plików Programy użytkowe

ZADANIE.02 Podstawy konfiguracji (interfejsy) Zarządzanie konfiguracjami 1,5h

DC UPS. User Manual. Page 1

Podstawowe polecenia konfiguracyjne dla Cisco IOS (Routery z serii 2600 IOS 12.1)

Ćwiczenie Podstawowa konfiguracja routera z użyciem IOS

Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006

SELinux. Robert Jaroszuk Zimowisko TLUG, 2011.

Podstawy administracji systemu Linux

Wykład 8. Temat: Hakerzy, wirusy i inne niebezpieczeństwa. Politechnika Gdańska, Inżynieria Biomedyczna. Przedmiot:

Open SuSE - instrukcje

Spis treści. Wstęp... 10

ZiMSK. dr inż. Łukasz Sturgulewski dr inż. Artur Sierszeń

Administracja serwerami

System kontroli wersji, system zarządzania kodem źródłowym

BASH - WPROWADZENIE Bioinformatyka 4

Architektura środowiska rozproszonego. Środowisko komunikacyjne Oracle*Net. Weryfikacja instalacji protokołu u sieciowego

Ilość cyfr liczby naturalnej

Laboratorium - Budowanie sieci z przełącznikiem i routerem

INFORMATOR TECHNICZNY WONDERWARE

Cel szkolenia. Konspekt

Zalecana instalacja i konfiguracja Microsoft SQL Server 2016 Express Edition dla oprogramowania Wonderware

Matlab jako klient OPC. Przykład wysyłania i odbierania danych z PLC za pośrednictwem DA Serwera.

Puppet Jak zacząć? Marcin Piebiak Linux Polska sp. z o.o.

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

ZADANIE.02 Cisco.&.Juniper Podstawy konfiguracji (interfejsy) Zarządzanie konfiguracjami 1,5h

Zapoznanie ze środowiskiem Mininet. Instalacja zewnętrznego kontrolera SDN.

Powłoka (shell) Powłoka ksh

PROFESJONALNE USŁUGI BEZPIECZEŃSTWA

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

MS Visual Studio 2005 Team Suite - Performance Tool

Transkrypt:

systemd: wymyślmy jeszcze jedno koło Zimowisko TLUG 2011 Tomasz Torcz <tomek@pipebreaker.pl>

Rozdzielnik co to jest init? jaką ma rolę? dlaczego systemd?

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

Mamo, skąd się biorą procesy? - boot - cron, at - inetd - D-Bus activation

Autorzy systemd% git log --format=%an sort -u wc -l 47 >10 commitów: Michael Biebl, Kay Sievers, Lennart Pöttering Pomysły: reszta świata

Usługi to nie wszystko usługi gniazda punkty mountowania pliki, katalogi upływ czasu urządzenia, cele

Ale my już mamy koło!

Ale my już mamy koło! /etc/init.d/* /etc/fstab /etc/init/* kernel command line (emergency, single itp.)

Usługi zależności (implicit) restartowanie demonizacja limity i kontrola (CPU, I/O, mem)

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=

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=

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=

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=

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=

Usługi - kontrola man systemd.exec man systemd.unit man systemd.service

Usługi - sysvinit #!/bin/bash # # ladvd Startup script for the [cefn]dp/lldp sender # # chkconfig: - 85 15 # description: ladvd uses [cefn]dp / lldp frames to inform switches \ # about connected hosts, which simplifies ethernet \ # switch management. # processname: ladvd # pidfile: /var/run/ladvd.pid # ### BEGIN INIT INFO # Provides: ladvd # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Short-Description: start and stop cdp/lldp sender # Description: ladvd uses [cefn]dp / lldp frames to inform switches # about connected hosts, which simplifies ethernet # switch management. ### END INIT INFO # Source function library.. /etc/rc.d/init.d/functions [ -f /etc/sysconfig/network ] &&. /etc/sysconfig/network [ "${NETWORKING}" = "yes" ] exit 0 [ -r /etc/sysconfig/ladvd ] &&. /etc/sysconfig/ladvd start() { [ -z "$ARGS" ] && exit 6 } echo -n $"Starting ladvd: " [! -d "/var/run/ladvd" ] && mkdir /var/run/ladvd && chown ladvd.ladvd /var/run/ladvd daemon /usr/sbin/ladvd $ARGS $LADVDARGS RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/ladvd return $RETVAL stop() { echo -n $"Shutting down ladvd: " killproc ladvd RETVAL=$? rm -f /var/lock/subsys/ladvd echo return $RETVAL } [ -f /usr/sbin/ladvd ] exit 0 # See how we were called. case "$1" in start) start ;; stop) stop ;; force-reload restart reload) stop start ;; try-restart condrestart) [ -e /var/lock/subsys/ladvd ] && (stop; start) ;; status) status ladvd RETVAL=$? ;; *) echo $"Usage: $0 {start stop status restart reload condrestart}" exit 3 esac exit $RETVAL

Usługi - sysvinit #!/bin/bash # # ladvd Startup script for the [cefn]dp/lldp sender # # chkconfig: - 85 15 # description: ladvd uses [cefn]dp / lldp frames to inform switches \ # about connected hosts, which simplifies ethernet \ # switch management. # processname: ladvd # pidfile: /var/run/ladvd.pid # ### BEGIN INIT INFO # Provides: ladvd # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Short-Description: start and stop cdp/lldp sender # Description: ladvd uses [cefn]dp / lldp frames to inform switches # about connected hosts, which simplifies ethernet # switch management. ### END INIT INFO

Usługi - sysvinit [ -r /etc/sysconfig/ladvd ] &&. /etc/sysconfig/ladvd start() { [ -z "$ARGS" ] && exit 6 echo -n $"Starting ladvd: " [! -d "/var/run/ladvd" ] && mkdir /var/run/ladvd && chown ladvd.ladvd /var/run/ladvd daemon /usr/sbin/ladvd $ARGS $LADVDARGS RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/ladvd return $RETVAL } stop() { echo -n $"Shutting down ladvd: " killproc ladvd RETVAL=$? rm -f /var/lock/subsys/ladvd echo return $RETVAL } [ -f /usr/sbin/ladvd ] exit 0

Usługi - sysvinit # See how we were called. case "$1" in start) start ;; stop) stop ;; force-reload restart reload) stop start ;; try-restart condrestart) [ -e /var/lock/subsys/ladvd ] && (stop; start) ;; status) status ladvd RETVAL=$? ;; *) echo $"Usage: $0 {start stop status restart reload condrestart}" exit 3 esac exit $RETVAL

Usługi - systemd [Unit] Description=uses [cefn]dp / lldp frames to inform switches about connected hosts [Service] EnvironmentFile=/etc/sysconfig/ladvd ExecStart=/usr/sbin/ladvd -a -f $LADVD_OPTIONS PIDFile=/var/run/ladvd.pid StandardOutput=syslog

Usługi - pilnowanie systemctl status (DEMO)

Gniazda kompatybilność (x)inetd niezrywalne połączenia przykład: syslog pełna kontrola

Gniazda - kontrola BindIPv6Only= Backlog= BindToDevice= SocketMode= MaxConnections= KeepAlive= Priority= ReceiveBuffer= SendBuffer= IPTOS= IPTTL= Mark= PipeSize= FreeBind= TCPCongestion=

Gniazda (DEMO)

Gniazda vsftpd.socket [Unit] Description=vsftpd incoming socket [Socket] ListenStream=21 Accept=yes [Install] WantedBy=multi-user.target

Gniazda vsftpd@.service [Unit] Description=vsftpd instance service [Service] Type=simple ExecStart=-/usr/sbin/vsftpd StandardInput=socket

Urządzenia współpraca z udev start aplikacji zależny od sprzętu

Urządzenia 99-hdapsd.rules # cat /etc/udev/rules.d/99-hdapsd.rules SUBSYSTEM=="block", KERNEL=="sd[ab]", ATTRS{removable}=="0", TAG="systemd", ENV{SYSTEMD_WANTS}="hdapsd@%k.service" (DEMO)

Urządzenia hdapsd@.service [Unit] Description=%I shock protection daemon [Service] EnvironmentFile=/etc/sysconfig/hdapsd StandardOutput=syslog SyslogIdentifier=%p(%I) Nice=-5 ExecStart=/usr/sbin/hdapsd -d %I $HDAPSD_OPTIONS (DEMO)

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

Timery rrd_hddtemp.timer [Timer] OnBootSec=3m OnUnitActiveSec=5m [Install] WantedBy=multi-user.target

Timery rrd_hddtemp.service [Service] ExecStart=/root/bin/rrd_hddtemp.pl Type=oneshot StandardError=syslog

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

Podsumowując lepsza kontrola restarty, limity OnFailure= pilnowanie zależności mniej kodu: demonizowanie, sockety

Podsumowując 2 zintegrowanie usług dystrybucyjnych (random seed, clock, API mounts) ujednolicenie skryptów startowych szybki start, zintegrowany readahead

avahi-daemon.socket [Unit] Description=Avahi mdns/dns-sd Stack Activation Socket [Socket] ListenStream=/var/run/avahi-daemon/socket [Install] WantedBy=sockets.target

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

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

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

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

systemd: wymyślmy jeszcze jedno koło Zimowisko TLUG 2011 Tomasz Torcz <tomek@pipebreaker.pl>

systemctl -t URL Strona: http://www.freedesktop.org/wiki/software/systemd Dokumentacja: http://0pointer.de/public/systemd-man/ Definicje jednostek: https://fedoraproject.org/wiki/user:johannbg/qa/systemd/compatability