Ich habe ein super einfaches init.d-Skript für meinen Python-Bot erstellt:
#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
# Source function library.
. /etc/init.d/functions
start() {
echo "starting torbot"
python /home/ctote/dev/slackbots/torbot/torbot.py
# example: daemon program_name &
}
stop() {
# code to stop app comes here
# example: killproc program_name
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
# code to check status of app comes here
# example: status program_name
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
Und gesetzt torbot.py
zu sein +x
und #!/usr/local/bin/python
an der Spitze. Wenn ich versuche, es tatsächlich zu starten, erhalte ich:
:/var/lock/subsys$ sudo service torbot start
Failed to start torbot.service: Unit torbot.service not found.
Vermisse ich etwas?
Ok, ich habe einige Schritte ausprobiert, um diese Stackoverflow-Antwort ( Ausführen des Upstart-Skripts am 17.04? ) Und sie funktionierten. Mein env ist wie folgt
Zuerst müssen Sie eine foo.service-Datei schreiben.
Die Bedeutung jedes Wortes auf der linken Seite des Zeichens '=' und die Entsprechung zu (dem früheren) Upstart finden Sie unter dem Link https://wiki.ubuntu.com/SystemdForUpstartUsers
Wenn die Datei fertig ist, können Sie sie als "foo.service" bezeichnen (die Erweiterung ".service" ist wichtig).
Sie müssen die Datei in platzieren
/lib/systemd/system
Danach müssen Sie den Dienst durch Aufrufen aktivieren
In diesem Fall geben Sie Ihr Root-Passwort ein, während Symlinks erstellt werden.
Wenn Sie ohne Probleme bis hierher gekommen sind, sind Sie gut. Ihr Dienst wird somit erstellt. Start erfolgt durch Anruf
systemctl status foo
um den Statussudo service foo stop
zu sehen, um den Dienst zu stoppenquelle
Hast du so etwas schon satt? Wie debugge ich Upstart-Skripte?
Können Sie die in diesem Handbuch enthaltenen Informationen bereitstellen, damit wir Sie beim potenziellen Debuggen Ihres Problems unterstützen können?
quelle
Ich hatte das gleiche Problem, dies ist die Lösung, die für mich funktioniert hat. Versuchen:
sudo systemctl daemon-reload
sudo systemctl enable daemon_app.service
sudo systemctl starte daemon_app.service
quelle