Ghost blogging platform installation instructions [Лицензия: CC-BY-3.0] есть раздел, показывающий, как использовать supervisord развернуть nodejs скрипт (который запускает блог), так что он будет перезагружен, когда он терпит неудачу и перезагрузки системы.
Supervisor (http://supervisord.org/) Популярные Linux дистрибутивы, такие , как Fedora, Debian и Ubuntu-поддерживать пакет для Supervisor: Система управления процесса, который позволяет запускать Призрак при запуске без использования сценариев инициализации. В отличие от сценария инициализации, Supervisor - это , переносимый между дистрибутивами Linux и версиями.
Установите диспетчер, как требуется для вашего дистрибутива Linux. Как правило, это будет:
Debian/Ubuntu: APT-получить установку супервизор
Fedora: ни установить супервизор
Большинства других дистрибутивов: easy_install супервизор
Убедитесь, что руководитель работает, по running service supervisor start
Создайте сценарий запуска для установки Ghost. Как правило, это будет идти в /etc/supervisor/conf.d/ghost.conf
Например:
[program:ghost]
command = node /path/to/ghost/index.js
directory = /path/to/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
Начало Призрачный с помощью супервизора: supervisorctl начать призраку
Чтобы остановить Призрак: supervisorctl остановка призраку
OK, поэтому, если ваш скрипт называется myscript.py
, и он принадлежит пользователю Змея и живет в /home/snake
.
Тогда команда должна быть python /home/snake/myscript.py
, то каталог должен быть там, где вы хотите запустить это (мы предполагаем, что это /home/snake
), то пользователь должен быть установлен соответствующим образом (мы предполагаем, что вы хотите для запуска в качестве пользователя змейка), авто остаются неизменными, а лог-файлы должны быть переименованы.
Окружающая среда устанавливает любые переменные ENV, которые необходимы сценарию. Как правило, вам не нужны никакие, если вы не используете их для управления аспектами вашего сценария.
- Установка supervisord, как указано выше, но не создали ничего для призрака
- Вместо Создать
/etc/supervisor/conf.d/myscript
следующим образом:
- supervisorctl начать MyScript
/etc/supervisor/conf.d/myscript
[program:myscript]
command = python /home/snake/myscript.py
directory = /home/snake
user = snake
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/myscript.log
stderr_logfile = /var/log/supervisor/myscript_err.log
Должен быть запущен и перезапускается даже при перезагрузке.
Что касается вашего секретного вопроса, это проблематично. Если вы предполагаете, что злоумышленник имеет доступ на чтение/запись к файловой системе, содержащей скрипт, они также могут изменить хэш безопасности. Публичные ключевые подписи немного лучше, потому что злоумышленник не будет знать, что изменить подпись, поскольку ему не хватает закрытого ключа. Но еще раз злоумышленник может просто переписать код, который проверяет подпись и обходит его, или заменить скрипт для запуска скрипта после проверки, чтобы всегда запускать какую-либо другую команду.
См. [Сторожевой таймер] (http://en.wikipedia.org/wiki/Watchdog_timer). Сама программа никогда не должна умирать, если она написана «надежно», но если она умирает, есть автоматизированные системы для отправки и/или перезапуска. Если он * может * восстановить, это еще одна история и зависит от того, как она прекращена, и состояния, в котором остались данные/операция, и каких-либо основных гарантий или недостатков. Чтобы предотвратить изменение, просто уберите права доступа. – user2864740
Блогеры [Ghost] (https://ghost.org) использовали [supervisord] (http://supervisord.org/) для просмотра и перезапуска процесса, который может завершиться неудачей. – Paul
похоже на: http://stackoverflow.com/questions/10922754/python-watchdog-for-another-python-process-technique/10922938#10922938 – Paul