加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – init.d启动的标准或最好的保持活动过程的方法

发布时间:2020-12-14 02:13:52 所属栏目:Linux 来源:网络整理
导读:我正在寻找一种标准方法或最佳实践来保持由init.d shell脚本启动的守护进程. 或者甚至更好,有没有办法直接从/etc/init.d保持它活着? 具体来说,我有一个名为dtnd的守护进程和无限循环查找向下进程,如果有,守护进程再次唤醒它们.此外,我使用start-stop-daemon
我正在寻找一种标准方法或最佳实践来保持由init.d shell脚本启动的守护进程.

或者甚至更好,有没有办法直接从/etc/init.d保持它活着?

具体来说,我有一个名为dtnd的守护进程和无限循环查找向下进程,如果有,守护进程再次唤醒它们.此外,我使用start-stop-daemon工具,以便从给定的系统用户运行进程.

我想从启动时运行这个dtnd守护进程.为了实现这种行为,我创建了一个init.d脚本,它使用start,stop和status命令“包装”dtnd文件.

我有2个问题需要解决:

>有没有办法从init.d shell脚本实现一些进程.是标准/最佳方式练习吗?
>建议让守护进程无限循环?我想最好使用像守护进程这样的工具来实现这一点.这是正确的?

非常感谢您的参与!

解决方法

您可能希望在守护程序的代码中使用 daemon(3)库函数.你应该知道 syslog(3)(至少记录错误条件).你可能应该轻轻地抓住SIGTERM信号.仔细阅读 signal(7)

服务器程序通常基于event loop(并且在概念上是无限循环).您将使用现有的事件循环库(例如libev,libevent,glib,…)或围绕多路复用系统调用(如poll(2))构建自己的事件循环库

阅读Advanced Linux Programming并研究一些现有免费软件守护进程的源代码.

也许dbus也与你的目标相关(我不太明白:“查找向下过程”究竟意味着什么?你可以通过内置于某些.bashrc中的ulimit bash经常调用setrlimit(2)设置一些限制)

crontab(5)还有@reboot条目,但这不是系统守护程序的推荐做法(但是您可以在用户crontab文件中使用它).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读