我有一个用 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
有用的链接是:Ubuntu启动如何,手册页升级-rc.d和服务