0

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

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

4

2 回答 2

1

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

于 2010-04-27T18:54:21.110 回答
1

取决于你的应用程序做什么。

就个人而言,我会保留一个线程仅用于处理信号并在其他线程中调用 sigprocmask 以停止将信号传递给它们。

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

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

于 2010-04-28T09:58:48.903 回答