向守护进程发送 SIGINT

Posted

技术标签:

【中文标题】向守护进程发送 SIGINT【英文标题】:Send a SIGINT to a daemonized process 【发布时间】:2013-01-01 17:44:50 【问题描述】:

我写了一个 c++ 代码,它自己守护进程..

它有一个用于 SIGINT 信号的信号处理程序

显然它在 shell 上运行时没有收到信号,因为它是守护进程。

如何发送信号?

谢谢

【问题讨论】:

我的意思是使用 ctrl+c ctrl+c 进入前台进程。 在前台进程中捕获 SIGINT 并将其转发给其他进程。 守护进程的全部目的是让进程永远运行,特别是对终端上的 Ctrl-C 不敏感。您可能希望添加一个程序参数以避免调用 daemon(3) 【参考方案1】:

您不能使用Ctrl-CSIGINT 发送到守护进程。 您需要做的是使用ps 命令找到一个进程ID(PID)并使用kill -INT <pid> 发送信号。

【讨论】:

【参考方案2】:

killall进程名-信号号

killall helloworld -2

将 SIGINT 发送到 helloworld 进程

【讨论】:

谢谢,但我对此很熟悉......我更倾向于使用 ctrl+c 而不是输入命令【参考方案3】:

使用ps定位其进程标识符,然后通过kill -INT PID发送SIGINT信号。

【讨论】:

以上是关于向守护进程发送 SIGINT的主要内容,如果未能解决你的问题,请参考以下文章

Linux-守护进程的引入

错误:无法向守护进程 CLClientRegister 发送注册请求

如何从客户端向服务器发送参数到守护进程?

linux守护进程配置文件

JACK XMPP 守护进程发送和接收消息

守护进程的内存分析