如何从一个程序发送信号到另一个程序?

Cha*_*hra 6 linux signals

我正在使用消息队列作为2个程序之间的ipc.现在我想使用消息队列将数据从一个程序发送到另一个程序,然后通过SIGINT信号将其发送给它.

我不知道如何将信号从一个程序发送到另一个程序.任何人都可以提供示例代码,如果他们有解决方案.

var*_*tec 11

#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);
Run Code Online (Sandbox Code Playgroud)

  • 有多种方法可以做到这一点。如果一个是另一个的父级,则父级在调用 fork() 时获取子级的 pid,子级可以使用 getppid() 获取父级。如果不是这种情况,您可以将 pid 放在商定的位置。例如,一个为另一个写入的文件。 (2认同)
  • 通常,其他进程必须将其 PID 写入文件以进行解析。但是,如果这两个程序共享某种关系(父/子,或者它们是同一个可执行文件中的线程),那么在创建时将知道 PID。 (2认同)

ser*_*sam 5

linux中的信号可以使用kill system调用发送,只需查看此链接以获取kill system调用和示例的文档.你也可以看到男人-2杀人.并且不建议使用SIGINT使用SIGUSR1或SIGUSR2