Adr*_*nez 5 linux shell daemon startup init.d
我正在寻找一种标准方法或最佳实践来保持init.dshell脚本活动启动的守护进程.
或者甚至更好,有没有办法让它直接保持活力/etc/init.d?
具体来说,我有一个dtnd带有无限循环的守护进程,它寻找向下进动,如果有的话,守护进程再次唤醒它们.此外,我使用该start-stop-daemon工具,以便从给定的系统用户运行进程.
我想dtnd从启动时运行这个守护进程.为了实现这种行为,我创建了一个init.d脚本,它dtnd使用start,stop和status命令"包装" 文件.
我有2个问题需要解决:
有没有办法从init.d shell脚本实现一些进程.是标准/最佳方式练习吗?
建议让守护进程无限循环?我想最好使用像守护进程这样的工具来实现这一点.这是正确的?
非常感谢您的参与!
您可能想在守护程序代码中使用daemon(3)库函数。您应该了解syslog(3)(至少记录错误情况)。您可能应该轻轻地捕捉到SIGTERM信号。仔细阅读信号(7)
服务器程序通常是基于事件循环的(并且它在概念上是无限循环)。您可以使用现有的事件循环库(例如libev、libevent、glib等),也可以围绕poll(2)等多路复用系统调用构建自己的事件循环库
阅读高级 Linux 编程并研究一些现有自由软件守护程序的源代码。
也许dbus也与你的目标相关(我不太明白:“寻找下行进程”到底意味着什么?你可以使用setrlimit(2)ulimit设置一些限制,通常通过某些 bash 内置函数调用.bashrc)
还有crontab(5)@reboot条目,但这不是系统守护程序的推荐做法(但是您可以在用户 crontab 文件中使用它)。
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |