使用自动启动来守护进程

使用自动启动来守护进程

我有一个用 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服务

相关内容