Демонизировать процесс с автозапуском

Демонизировать процесс с автозапуском

У меня есть простой скрипт, написанный на Ruby.

  • Я хотел бы запустить как фоновую задачу (демонический процесс или службу).
  • Более того, я хочу иметь над ним контроль, чтобы иметь возможность запускать и останавливать его.
  • Было бы идеально, если бы процесс можно было запускать автоматически при перезапуске моего VPS.

Есть ли способ это сделать?

решение1

На самом деле я нашел идеальное решение для этого. Это требует, upstartпоэтому гораздо проще, чем стандартные услуги, runitи systemd.

Вот более подробная инструкция: http://blog.arkency.com/2014/06/create-run-and-manage-your-background-processes-with-upstart/

И это что-то вроде:

В /etc/init/my_program_upstart_script.conf:

start on my_event
respawn
exec /home/my_user/my_program/my_program_executable

Да, так просто!

Просто запустите программу с расширением sudo initctl emit my_event.

решение2

Простой способ — создать скрипты bash, которые запускают/останавливают ваше приложение. Следуйте /etc/init.d/skeletonпримеру.

Установите свой скрипт:

    sudo copy yourApplicationCtl /etc/init.d
    sudo chmod +x /etc/init.d/yourApplicationCtl

Чтобы запустить приложение при загрузке сервера и остановить его при завершении работы:

    sudo update-rc.d yourApplicationCtl defaults

Если вы хотите вручную запустить/остановить приложение:

    sudo service yourApplicationCtl start/stop

Полезные ссылки:UbuntuBootupHowto, страница руководстваобновление-rc.dиуслуга

Связанный контент