我有一些 ruby 进程,为了开发,我一直在使用 foreman 来管理进程,现在在生产中我想导出进程并在 /etc/init.d 目录中运行它。
是否有任何工具可以通过将脚本和相关的 PID 创建到 /var/run 来提供帮助?我尝试使用工头导出功能来执行此操作,但它不起作用,因为它可以为 inittab 或 upstart 做一些事情,但不能为 init.d 做一些事情。
任何帮助将不胜感激
mm似乎没有工具可以创建,工头可以导出inittabs,upstart但不能导出init.d,唯一的方法是修改文件:
/etc/init.d/skeleton
您需要稍微修改它,然后:
chmod +x /etc/init.d/process_name
sudo update-rc.d process_name defaults
sudo /etc/init.d/process_name (start| stop| reload )
完毕 。:)
另一个答案可能是使用https://github.com/ghazel/daemons gem 。
require 'daemons'
require 'process'
Daemons.run('process.rb')
脚本完成后,只需从命令行调用它:
ruby process.rb run|start|stop|restart
此配置将在“/var/run”下生成一个“process.pid”文件,您可以使用 monit 通过使用此文件来监视进程。