linux – init.d启动的标准或最好的保持活动过程的方法
我正在寻找一种标准方法或最佳实践来保持由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文件中使用它). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |