如何为Daemon-kit项目设置init.d rc脚本?

我正在使用Ruby Daemon-kit来设置为我的Rails应用程序执行各种后台操作的服务。 当我在命令行上调用时它工作正常:
./bin/bgservice
我如何为它创建一个守护进程initd启动脚本,以便它在重启时自动启动?     
已邀请:
有几种方法: 您可以编写可以放入
/etc/rc?.d/
目录的
/etc/init.d/
脚本(或者它们存在于目标发行版中的任何位置)。有关此机制的一些详细信息,请参阅Debian策略指南和openSUSE initscript教程。在initscripts中有一些令人讨厌的特定于发行版的特性,所以不要想写一个简单的特性,并要求发行版为他们的环境提供量身定制的“更好”的特性。 (例如,任何Debian派生的发行版都会提供极其有用的
start-stop-daemon(8)
帮助器,但是其他发行版中却非常缺失。) 您可以为支持
upstart
(我认为是Ubuntu,Google ChromeOS,Fedora,...更多?)的发行版编写
upstart
工作规范。
upstart
文档仍然相当薄弱,但在Ubuntu的
/etc/init/
中有一些细节和大量示例,可能与使用
upstart
的其他发行版中的位置相同。获得正确的依赖关系可能是所有发行版中的一些工作,但是
upstart
工作规范看起来比编写脚本更容易编写和维护。 您可以在仍支持标准SysV-init
inittab(5)
文件的发行版上添加行至
/etc/inittab
。这只有在你的程序没有执行通常的守护程序
fork(2)
/
setsid(2)
/
fork(2)
咒语时才有用,因为
init
使用从
fork(2)
获得的pid来确定你的程序是否需要重新启动。 现代Vixie
cron(8)
支持
crontab(5)
文件中的
@reboot
说明符。这可以由系统crontab以及用户crontabs使用,如果您只想将程序作为常用登录帐户运行,这可能会很好。     
作为daemon-kit的作者,由于应对各种发行版,我避免制作任何init风格的脚本,并且它们是从旧的init-V样式迁移到新的upstart / insserv,从而为自己节省了噩梦。 我如何建议这样做是使用神配置生成器,并确保上帝在启动时启动(通过runit或其他方式),并且上帝启动守护进程最初并保持运行。 充其量我会扩展daemon-kit以生成用于启动的runit脚本... HTH。     

要回复问题请先登录注册