Inhaltsverzeichnis

zurück zur Übersicht

Systemd

Systemd ist ein init-Dienst zum Steuern von Prozessen ähnlich wie Upstart und SysVinit-Skripten.

Um einen neuen Service anzulegen, muss eine Textdatei mit der Endung

.service

in /etc/systemd/system erstellt werden.

Beispiel PhantomJS mit Highcharts

Datei: /etc/systemd/system/phantomjs@.service

[Unit]
Description=PhantomJS headless browser with HighCharts
After=network.target
 
[Service]
ExecStart=/usr/bin/phantomjs /home/%i/highcharts/highcharts-convert.js -host xxx.xxx.xxx.xxx -port 3003
KillMode=process
Restart=on-failure on-abort
User=%i
Group=%i

Das @ im Dateinamen steht dafür, dass der Prozess von mehreren Benutzern gestartet werden kann.
%i: Benutzername
ACHTUNG: Relative Pfade werden NICHT unterstützt!
Nach jeder Veränderung, oder dem hinzufügen eines Systemd-Services, muss mit

systemctl daemon-reload

der Daemon neu geladen werden.

Shell

systemctl start phantomjs@USERNAME   #startet den Prozess
systemctl stop phantomjs@USERNAME    #beendet den Prozess
systemctl enable phantomjs@USERNAME  #aktiviert den Prozess(wird bei systemstart ausgeführt)
systemctl disable phantomjs@USERNAME #deaktiviert den Prozess
systemctl status phantomjs@USERNAME  #zeigt, ob der Prozess läuft, evtl. Fehler und seinen Output

SystemD
SystemD manpage
systemctl
journalctl