Linux服务和cron作业的来源

时间:2010-04-27 17:13:12

标签: linux service init.d

我是linux的新手,用C ++编写服务,生成多个线程,我通过从init.d调用它来启动服务,但是如何从脚本中将终止信号发送到我的应用程序,以便我的service终止所有线程和退出。

还有哪里可以找到任何linux服务的源代码。例如/etc.init.d/rc5.d/S14cron。这将有助于理解如何实现服务。

2 个答案:

答案 0 :(得分:1)

这类问题的经典参考是Steven的“UNIX环境中的高级编程”。您可以在本教材here找到源代码。

答案 1 :(得分:1)

取决于您的应用程序的功能。

就个人而言,我只保留一个线程来处理信号,并在其他线程中调用sigprocmask来阻止信号传递给它们。

主线程/信号处理线程(通常最好将其作为主线程)然后可以向其线程发送消息,告诉他们完成他们正在做的事情并退出。

或者,如果您喜欢仅崩溃的原则,您可以调用exit_group并完成它:)