UNIX/Linux:向进程发信号的3种方式

  UNIX/Linux:向进程发信号的3种方式

问:怎么向另一个进程发信号?你能跟我解释下在UNIX/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 USER1 3699

注意:参考杀死进程的4种方式-kill,killall,pkill,xkill

2.从另一个进程给一个进程发信号

你可以使用UNIX系统调用kill(从一个C程序)从一个进程给另一个进程发信号。下面的C代码段说明怎样使用kill命令。

Kill系统调用接收两个参数: 1) 需要接收信号的进程PID(进程id) 2)需要发送给进程的信号。调用成功,kill命令返回0。

   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-^?;

【本译文仅用于学习和交流目的。非商业转载请注明译者、出处,并保留文章在译言的完整链接】

http://article.yeeyan.org/view/169956/174755

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值