Eu criei um script init.d super básico para o meu 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
E ter definido torbot.py
para ser +x
e #!/usr/local/bin/python
no topo. Quando tento realmente iniciá-lo, recebo:
:/var/lock/subsys$ sudo service torbot start
Failed to start torbot.service: Unit torbot.service not found.
Estou esquecendo de algo?
Ok, eu tentei algumas etapas nesta resposta stackoverflow ( executando o script iniciante no 17.04? ) E elas funcionaram Meu ambiente é o seguinte
Primeiramente, você precisa escrever um arquivo foo.service.
O significado de cada palavra no lado esquerdo do sinal '=' e seu equivalente no início (para o anterior) está no link https://wiki.ubuntu.com/SystemdForUpstartUsers
Quando o arquivo estiver pronto, digamos que você o nomeie como 'foo.service' (a extensão .service é importante)
Você precisa colocar o arquivo em
/lib/systemd/system
Após o qual você precisa ativar o serviço chamando
O que solicitará que você digite sua senha root, pois criará links simbólicos.
Se você chegou até aqui sem problemas, você é bom. Portanto, seu serviço é criado. Comece chamando
systemctl status foo
para ver o statussudo service foo stop
para parar o serviçofonte
Você já cansou algo assim? Como depuro scripts Upstart?
Você pode fornecer a saída que este guia fornece para que possamos ajudá-lo a depurar seu problema?
fonte
Eu tive o mesmo problema, esta é a solução que funcionou para mim. Experimentar:
sudo systemctl daemon-reload
sudo systemctl enable daemon_app.service
sudo systemctl start daemon_app.service
fonte