J'ai créé un script init.d super basique pour mon bot python:
#!/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
Et sont prêts torbot.py
à être +x
et #!/usr/local/bin/python
au sommet. Cependant, lorsque j'essaie de le démarrer, j'obtiens:
:/var/lock/subsys$ sudo service torbot start
Failed to start torbot.service: Unit torbot.service not found.
Suis-je en train de manquer quelque chose?
Ok, j'ai essayé certaines étapes de cette réponse stackoverflow ( Exécution du script upstart le 17.04? ) Et elles ont fonctionné Mon env est le suivant
Vous devez d'abord écrire un fichier foo.service.
La signification de chaque mot sur le côté gauche du signe '=' et leur équivalent dans (par le début) upstart est dans le lien https://wiki.ubuntu.com/SystemdForUpstartUsers
Une fois le fichier prêt, disons que vous le nommez 'foo.service' (l'extension .service est importante)
Vous devez placer le fichier dans
/lib/systemd/system
Après quoi, vous devez activer le service en appelant
Ce qui vous demandera d'entrer votre mot de passe root car il créera des liens symboliques.
Si vous avez atteint jusqu'ici sans tracas, vous êtes bon. Votre service est donc créé Commencez par appeler
systemctl status foo
pour voir l'étatsudo service foo stop
d'arrêter le servicela source
Avez-vous fatigué quelque chose comme ça? Comment déboguer des scripts Upstart?
Pouvez-vous fournir la sortie fournie par ce guide afin que nous puissions vous aider à éventuellement déboguer votre problème?
la source
J'ai eu le même problème, c'est la solution qui a fonctionné pour moi. Essayer:
sudo systemctl daemon-reload
sudo systemctl enable daemon_app.service
sudo systemctl start daemon_app.service
la source