В инструкциях по установке платформы для ведения блогов Ghost [лицензия: CC-BY-3.0] есть раздел, показывающий, как использовать supervisord для развертывания сценария nodejs (который запускает блог), чтобы он перезапускался в случае сбоя и при перезагрузке системы.
Supervisor (http://supervisord.org/) Популярные дистрибутивы Linux, такие как Fedora, Debian и Ubuntu, поддерживают пакет для Supervisor: система управления процессами, позволяющая запускать Ghost при запуске без использования сценариев инициализации. В отличие от сценария инициализации Supervisor можно переносить между дистрибутивами и версиями Linux.
Установите Supervisor в соответствии с требованиями вашего дистрибутива Linux. Как правило, это будет:
Debian/Ubuntu: супервизор установки apt-get
Fedora: супервизор установки yum
Большинство других дистрибутивов: easy_install supervisor
Убедитесь, что Supervisor запущен, запустив 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"
Запустите Ghost с помощью Supervisor: supervisorctl start ghost
Чтобы остановить призрака: supervisorctl stop ghost
Итак, если ваш скрипт называется myscript.py
, он принадлежит пользователю snake и живет в /home/snake
.
Тогда команда должна быть python /home/snake/myscript.py
, каталог должен быть там, где вы хотите запустить это (мы предполагаем, что это /home/snake
), пользователь должны быть установлены соответствующим образом (мы предполагаем, что вы хотите работать от имени пользователя snake), автоматические параметры остаются прежними, а файлы журналов должны быть переименованы.
Среда устанавливает любые переменные ENV, необходимые сценарию. Как правило, они вам не понадобятся, если только вы не используете их для управления аспектами вашего скрипта.
- Установите супервизора, как описано выше, но ничего не настраивайте для призрака.
- Вместо этого создайте
/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
Должен работать и перезапустится даже при перезагрузке.
Что касается вашего секретного вопроса, это проблематично. Если вы предполагаете, что злоумышленник имеет доступ для чтения/записи к файловой системе, содержащей скрипт, он также может изменить хэш безопасности. Подписи с открытым ключом немного лучше, потому что злоумышленник не будет знать, на что изменить подпись, поскольку у него нет закрытого ключа. Но опять же, злоумышленник может просто переписать код, проверяющий сигнатуру, и обойти его, или заменить скрипт на запуск скрипта после проверки, чтобы всегда запускать какую-то другую команду.
person
Paul
schedule
27.09.2014