Wahrscheinlich führen Sie systemd als Ihr Inint-System aus. Um Ihren Dienst zu konfigurieren, müssen Sie beispielsweise die erforderliche Einheitendatei erstellen /etc/systemd/system/jenkins.service
.
[Unit] Description=Jenkins After=network.target [Service] Type=simple ExecStart=/usr/java/jre1.8.0_131/bin/java -jar /usr/local/jenkins/jenkins.war User=jenkins [Install] WantedBy=multi-user.target
Um den Dienst zu laden, der beim Booten ausgeführt werden soll, führen Sie Folgendes aus systemctl daemon-reload
. systemctl start jenkins.service
startet den Dienst von der Kommandozeile aus. Die vollständige Dokumentation finden Sie auf den Manpages . Die Systemd -Homepage bietet außerdem viel Material für weitere Studien.
Falls Sie SysV Stil init verwenden, müssen Sie ein Init - Skript schreiben, die in Ihrem Daemon startet /etc/init.d/
, zum Beispiel /etc/init.d/jenkins
(und markieren Sie es ausführbar).
#!/bin/sh ### BEGIN INIT INFO # Provides: jenkins # Default-Start: 2 3 4 5 # Default-Stop: 1 ### END INIT INFO EXEC="/usr/java/jre1.8.0_131/bin/java" ARGS="-jar /usr/local/jenkins/jenkins.war" USER="jenkins" PIDFILE="/run/jenkins.pid" . /lib/lsb/init-functions case "$1" in start) start-stop-daemon --start --background --chuid $USER \ --make-pidfile --pidfile $PIDFILE --exec $EXEC -- $ARGS ;; stop) start-stop-daemon --stop --pidfile $PIDFILE --exec $EXEC ;; *) echo "Usage: /etc/init.d/jenkins " exit 1 ;; esac exit 0
Beachten Sie, dass Sie Ihren Service in Ihr Init-Skript einordnen müssen, andernfalls wird Ihr Skript nicht beendet. In diesem Beispiel führt der start-stop-daemon forking ( --background
) und das Ändern von user ( --chuid
) aus. Um zu untersuchen, wie andere Dienste in Ihrem System mit Init-Skripts gestartet werden, können Sie die Dateien darin untersuchen /etc/init.d/
.
Führen Sie den Befehl aus, um den Dienst zum Startzeitpunkt zu starten update-rc.d jenkins enable
. Starten Sie das neue Skript, um den Dienst zu starten /etc/init.d/jenkins start
.
LSB-kompatible Init-Skripte sind auch abwärtskompatibel. Denken Sie an die Quelle /lib/lsb/init-functions
für systemctl, um transparent zu arbeiten, wenn Sie das Skript direkt ausführen.
Das Debian- Wiki für LSBInitScripts enthält weitere Details zu verfügbaren Optionen, z. B. das Starten des Dienstes nach / vor einem anderen Dienst.