У меня есть простой скрипт, написанный на 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иуслуга