Я создал супер основной init.d сценарий для своего бота 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
И установили torbot.py
быть +x
и #!/usr/local/bin/python
наверху. Когда я пытаюсь на самом деле запустить его, хотя, я добираюсь:
:/var/lock/subsys$ sudo service torbot start Failed to start torbot.service: Unit torbot.service not found.
Я пропускаю что-то?
При использовании человечности 16.04 или более новые, можно хотеть рассмотреть документ systemd приблизительно сервисные файлы создания
, сценарий для старой init системы и управляется слоем совместимости с прежними системами.
Для меня я использую Ubuntu 16.04.
, Во-первых изменяют функцию init
. /etc/init.d/functions
к
. /lib/lsb/init-functions
Затем в оболочке, создают символьные ссылки из/etc/rc* к моему сценарию:
sudo update-rc.d <myapp> defaults 95
Вы имеете усталый что-то вроде этого? , Как я отлаживаю Новомодные сценарии?
можно ли обеспечить вывод, к которому обеспечивает это руководство так, чтобы мы могли помочь Вам потенциально отладить свою проблему?
Хорошо, я попробовал некоторые шаги этот ответ stackoverflow (Запускающий новомодный скрипт на 17,04?) и они работали, Мой ENV следующие
Во-первых необходимо записать foo.service файл.
[Unit]
Description=FooServer
[Service]
Restart=on-failure
WorkingDirectory=/path/to/your/working/directory/where the foo lives
ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
Значение каждого слова на левой стороне '=' знак и их эквивалент в (к ранее) выскочка находится в ссылке https://wiki.ubuntu.com/SystemdForUpstartUsers
После того как файл готов, скажем, Вы называете его как 'foo.service' (.service расширение важно),
Необходимо поместить файл в /lib/systemd/system
После которого необходимо включить сервис путем вызова
systemctl enable foo
Который предложит Вам, вводят Ваш пароль root, поскольку он будет создавать символьные ссылки.
Если Вы достигли, до здесь без любой стычки, Вы хороши. Ваш сервис следовательно создается, Запускаются, путем вызова
sudo service foo start
systemctl status foo
видеть состояние sudo service foo stop
остановить сервис
У меня была та же проблема, это - решение, которое работало на меня. Попробуйте:
sudo systemctl перезагрузка демона
sudo systemctl включают daemon_app.service
sudo systemctl запускают daemon_app.service