Вопрос Не удалось запустить .service: Unit .service не найден.


Я создал супер базовый скрипт 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.

Я что-то упускаю?


10
2018-03-08 22:27


происхождения




ответы:


Если вы используете ubuntu 16.04 или новее, вы можете просмотреть документ systemd о создание служебных файлов

Сценарий предназначен для старой системы init и управляется уровнем совместимости.


3
2018-03-17 09:13





Для меня я использую Ubuntu 16.04.

Сначала измените функцию init

. /etc/init.d/functions

в

. /lib/lsb/init-functions

Затем в оболочке создайте символические ссылки из / etc / rc * в мой скрипт:

sudo update-rc.d <myapp> defaults 95

2
2018-03-14 12:23



Что здесь означает 95? - Gherman
@Gherman - это приоритет - turson


Вы что-то устали? Как отлаживать сценарии Upstart?

Можете ли вы предоставить вывод для этого руководства, чтобы мы могли помочь вам потенциально отладить вашу проблему?


0
2018-03-09 01:01





Хорошо, я пробовал несколько шагов в этом ответе stackoverflow (Запуск сценария запуска 17.04?), и они работали Мой env выглядит следующим образом

  1. Ubuntu в 17.10
  2. У меня есть приложение python на сервере Gunicorn 19.x, мне нужно запустить это приложение в качестве службы.

Во-первых, вам нужно написать файл 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 прекратить обслуживание


0
2018-02-27 20:02