Systemd systemctl
Uruchamia usługi systemowe Linux wraz z zależnościami i udostępnia informacje o nich.
W nomenklaturze demona każdą usługę nazywa jednostką, pliki posiadają różne typy przyrostków zgodnie z konwencją w zależności od konfiguracji jaką reprezentują. Nie są wykonywalne to tylko pliki konfiguracyjne.
Podczas instalacji pakiety zapisują pliki jednostek do katalogów:
/usr/lib/systemd/system
Pliki utworzone na własne potrzeby i te wygenerowane przez systemctl enable umieszczone są w:
/etc/systemd/system
systemctl – wprowadza zmiany w konfiguracji systemd, kontroluje jego stan.
Lista typy jednostek:
systemctl -t help
Podpolecenia
Wyświetlenie aktywnych usług:
list-units --type=service
Wyświetlanie wszystkich usług:
list-unit-files --type=service
Ponowne załadowanie plików jednostek i konfiguracji systemd
deamon-reload
Aktywuje jednostkę
enable
Dezaktywuje jednostkę
disable
Natychmiastowa aktywacja jednostki
start
Natychmiastowa dezaktywacja jednostki
stop
Restart jednostki
restart
Status jednostki
status -l
Pełna lista poleceń
Pełna lista opcji konfiguracji systemd.service
Tworzenie własnej usługi
Plik jednostki utwórz w:
vim /etc/systemd/system/exec-docker-compose.service
Przykładowo docker-compose
[Unit] Description=exec-docker-compose Requires=docker.service After=docker.service [Service] Restart=always User=root Group=docker WorkingDirectory=/home/tomasz/docker ExecStartPre=/home/tomasz/docker -f docker-compose.yaml down ExecStart=/home/tomasz/docker -f docker-compose.yaml up ExecStop=/home/tomasz/docker -f docker-compose.yaml down [Install] WantedBy=multi-user.target
Przykładowo własna apka node
Nadanie uprawnień
[Unit] Description=appNode.js After=network.target [Service] Type=simple User=root ExecStart=/usr/bin/node /home/tomasz/node/generator/app.js Restart=on-failure [Install] WantedBy=multi-user.target
chmod a+x /etc/systemd/system/exec-docker-compose.service
Przeładowanie ustawień
systemctl daemon-reload
Start usługi
systemctl start exec-docker-compose
Uruchomienie autostartu
systemctl enable exec-docker-compose.service
UWAGA! W świecie Linux wielu administratorów krytykuje systemd , i wybierają tradycyjny init. Więcej informacji znajdziesz tutaj Nosystemd
W systemie macOS do zarządzania procesami i agentami wykorzystywany jest launchd