Linux:向进程发送信号的 3 种方法

网友投稿 3419 2022-05-28

如何向另一个进程发送信号?你能解释一下在 linux 环境中向进程发送信号的所有可用选项吗?

您可以使用本文中介绍的一种方法向进程发送各种信号。

1. 使用 Kill 向进程发送信号

使用 kill 命令向进程发送信号。例如,如果要向进程“a.out”发送 USR1 信号,请执行以下操作。

$ ps -C a.out PID TTY TIME CMD 3699 pts/1 00:00:00 a.out $ kill -s USR1 3699

注意:请查看之前发过的文章 KILL进程的 4 种方法 - kill、killall、pkill、xkill。

2. 从另一个进程向一个进程发送信号

您可以使用 UNIX 系统调用 kill(来自 C 程序)将信号从一个进程发送到另一个进程。以下 C 代码片段显示了如何使用 kill 命令。

Kill 系统调用有两个参数:1)需要发送信号的进程的 PID(进程 ID)2)需要发送到进程的信号。Kill 命令成功时返回 0。

Linux:向进程发送信号的 3 种方法

int send_signal (int pid) { int ret; ret = kill(pid,SIGHUP); printf("ret : %d",ret); }

3. 从键盘向进程发送信号

当一个进程在终端上运行时,您可以使用某些特定的键组合从键盘向该进程发送信号。以下是几个例子。

SIGINT (Ctrl + C) - 你已经知道了。按 Ctrl + C 会终止正在运行的前台进程。这会将 SIGINT 发送到进程以杀死它。

您可以通过按 Ctrl + \ 或 Ctrl + Y 向进程发送 SIGQUIT 信号

您可以使用“stty -a”命令查看向进程发送特定信号的键映射,如下所示。

$ stty -a | grep intr intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;

Linux 任务调度

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Windows 64位下安装Redis详细教程
下一篇:2.5 C++算法 | 比较大小
相关文章