gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:50:20 27 4
gpt4 key购买 nike

我正在使用 Ruby Daemon-kit 设置一个服务,为我的 Rails 应用程序执行各种后台操作。

当我在命令行上调用时它工作正常:

./bin/bgservice

我如何为它创建一个守护进程 initd 启动脚本,以便它在重新启动时自动启动?

最佳答案

有几种方法:

  1. 您可以写 /etc/init.d/可以放入 /etc/rc?.d/ 的脚本目录(或者它们位于目标发行版上的任何位置)。有关此机制的一些详细信息可以在 Debian policy guidelines 中找到。和 openSUSE initscript tutorial 。初始化脚本中有大量令人烦恼的特定于发行版的特性,因此不要编写一个简单的脚本并要求发行版提供适合其环境的“更好”的脚本。 (例如,任何 Debian 派生的发行版都会提供非常有用的 start-stop-daemon(8) 帮助程序,但其他发行版却严重缺少它。)

  2. 您可以写 upstart支持 upstart 的发行版的作业规范(我认为是 Ubuntu、Google ChromeOS、Fedora 等等?)。 upstart文档仍然相当薄弱,但有some details /etc/init/ 中有很多例子在 Ubuntu 上,可能是使用 upstart 的其他发行版中的相同位置。正确获取依赖关系可能需要跨所有发行版进行一些工作,但是 upstart作业规范看起来比初始化脚本更容易编写和维护。

  3. 您可以将行添加到 /etc/inittab在仍然支持标准 SysV-init 的发行版上 inittab(5)文件。仅当您的程序不执行通常的守护进程 fork(2) 时,这才有用。/setsid(2)/fork(2)咒语,如 init使用从 fork(2) 获取的 pid 以确定您的程序是否需要重新启动。

  4. 现代 Vixie cron(8)支持@reboot crontab(5) 中的说明 rune 件。系统 crontab 和用户 crontab 都可以使用它,如果您只想作为常用登录帐户运行该程序,这可能会很好。

关于daemon - 如何为 Daemon-kit 项目设置 init.d rc 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com