start-stop-daemon не запустит мой сценарий Python как сервис

Если это - текстовый редактор а-ля emacs/vi, удостоверьтесь, что Вы сокращаете строки только в конце абзацев и не пропускаете строки. Существуют символы (знаки цитаты, например), с которым будет трудно управиться в текстовом редакторе. Вам, вероятно, придется сделать глобальные замены однажды в слове.
Но я обычно делаю это только для первого чернового наброска текста. Затем я переключаюсь для LibreOffice, улучшаю текст и затем сохраняю для слова. Может быть мудро сохранить регулярно в формате слова (.doc) в случае, если некоторая несовместимость появляется. Даже возможно работать с LibreOffice и сохранить файлы в .doc.

5
07.09.2017, 15:32
2 ответа

Я вижу две проблемы:

prog = python /opt/google_appengine/dev_appserver.py --host = 0.0.0.0 --admin_host = 0.0.0.0 --php_executable_path = / usr / bin / php-cgi / var / www

Запустит /opt/google_appengine/dev_appserver.py с prog = python в среде. Это до вашего блока start , поэтому start-stop-daemon даже не участвует.

Быстрое исправление - процитировать все назначение следующим образом:

prog = 'python /opt/google_appengine/dev_appserver.py --host = 0.0.0.0 --admin_host = 0.0.0.0 --php_executable_path = / usr / bin / php-cgi / var / www '

Но лучшее решение - использовать стиль из /etc/init.d/skeleton и сделать

DAEMON='python /opt/google/appengine/dev_appserver.py'
DAEMON_ARGS='--host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www'

Вторая проблема заключается в том, что вы ошибочно цитируете $ prog .

start-stop-daemon --start --make-pidfile --background --oknodo --user "$ user" --name "$ name" --pidfile "$ pid" --startas "$ prog"

сообщает start-stop-daemon , чтобы он попытался запустить программу с именем python /opt/google_appengine/dev_appserver.py --host = 0.0.0.0 --admin_host = 0.0.0.0 - php_executable_path = / usr / bin / php-cgi / var / www .

Но программы с таким названием явно не существует. Вы хотите запустить python с аргументами. Удаление двойных кавычек - это быстрое решение, но лучше, опять же после /etc/init.d/skeleton , было бы

start-stop-daemon --start --quiet - chuid $ CHUID --pidfile $ PIDFILE --exec $ DAEMON - $ DAEMON_ARGS

5
27.01.2020, 20:39

На всю жизнь я не мог понять, зачем начинать- stop-daemon не работал ... Я использую Debian 7.6 wheezy и могу только предположить, что эта функция отключена.

Я меняю лайк на использование / dev / null и & и вуаля - sciprt запускается и продолжает работать, как ожидалось ... Я украл код из mysql:

$prog > /dev/null 2>&1 &

Мне было бы очень интересно, если бы кто-нибудь мог объяснить почему это работает, а исходное решение не ... в любом случае, я решил, что поделюсь своим опытом в надежде:

  1. Избавить кого-то от головной боли возиться с решением
  2. Побудить кого-то подойти и объяснить, как заставить это работать так, как я изначально хотел :)

РЕДАКТИРОВАТЬ | Вот две интересующие нас строки

prog='/usr/bin/python /opt/google_appengine/dev_appserver.py --host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www'

start-stop-daemon --start --make-pidfile --background --oknodo --user $user --name $name --pidfile $pid --exec $prog
0
27.01.2020, 20:39

Теги

Похожие вопросы