Completed systemd unit description

master
Josef Rokos 4 years ago
parent d43158fd52
commit 4cabd6bf4f

@ -45,3 +45,96 @@ A vypsat log přes journalctl:
``` ```
$ journalctl -u foo-daemon $ journalctl -u foo-daemon
``` ```
## Sekce konfiguráku
### `[Unit]` - popis služby
|Parametr |Popis |
|-------------|--------------------------------------------------------------------------------------------------------------------------------|
|Description |Krátký popis služby |
|Documentation|Seznam URI odkazů na dokumentaci |
|Before, After|Pořadí startu služeb |
|Requires |Pokud bude aktivována tato služba, aktivují se i služby v tomto seznamu |
|Wants |Slabší závislosti, než v parametru Requires. Pokud se nezdaří start některé služby z tohoto seznamu, služba se přesto nastartuje|
|Conflicts |Seznam konfliktních služeb |
 
### `[Unit]` - konfigurace instalace
|Parametr |Popis |
|--------------------|----------------------------------------------------------------------------------------------------------------|
|Alias |Alias služby |
|RequiredBy, WantedBy|Služba nastartuje, pokud budou nastartovány všechny služby z tohoto seznamu. Viz Requires a Wants v sekci Unit |
|Also |Seznam služeb, které budou povoleny nebo zakázány zároveň s touto službou (systemctl enable, systemctl disable)|
 
### `[Service]` - konfigurace startu
|Parametr |Popis |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|Type |Způsob spouštění služby |
| | simple (výchozí)- spustit, jak je definováno v parametru ExecStart |
| | forking- služba je spuštěná, až dojde k forku a skončí rodičovský proces |
| | oneshot - podobné jako simple, ale předpokládá se, že proces skončí než se budou startovat následující služby. Lze definovat RemainAfterExit=yes, pak se předpokládá, že je služba aktivní, i když proces už skončil |
| | dbus- podobné jako simple, ale služba se považuje za spuštěnou, až dostane D-Bus jméno |
| | notify- podobné jako simple, ale služba se považuje za spuštěnou, až pošle signál systemd |
| | idle- spuštění služby je odloženo až doběhnou všechny úlohy|
|ExecStart |Příkaz i s argumenty pro spuštění služby. |
|ExecStop |Příkaz pro zastavení služby |
|ExecReload |Příkaz pro přenačtení konfigurace |
|Restart |Pokud je zadán tento parametr, služba je restartována v případě, že se ukončí nebo spadne. Při ukončení přes systemctl stop k restartu nedojde |
|RemainAfterExit|Pokud je nastaveno na True, služba je považována za spuštěnou, i když skončí proces |
 
## Přiklady konfigurace
```
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
```
```
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
```
```
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=/usr/bin/redis-server /etc/redis.conf --daemonize no
ExecStop=/usr/bin/redis-shutdown
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
```
Loading…
Cancel
Save