LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 915|回复: 1

SIGCONT信号为何不能恢复进程的运行?

[复制链接]
发表于 2011-8-8 12:41:59 | 显示全部楼层 |阅读模式
Ctrl+z导致进程的停止,而向进程发送SIGCONT信号则会恢复进程的运行。我试了一下,首先执行less命令查看一篇长文档,当less显示完一屏后暂停,此时按下Ctrl+z,less进程停止了并且释放了终端。这时,我可以向其发送SIGCONT信号,但less并没有恢复前台执行。

root [ ~ ]# less readme.txt                                # 执行less

[1]+  Stopped                 less readme.txt                # 按Ctrl+z停止less进程
root [ ~ ]# ps                                                # 查看less进程的PID
  PID TTY          TIME CMD
2914 pts/0    00:00:00 bash
2987 pts/0    00:00:00 less
2988 pts/0    00:00:00 ps
root [ ~ ]# kill -s SIGCONT 2987                        # 向less进程发送SIGCONT信号,但less并没有回到前台运行
root [ ~ ]# kill -9 2987                                # 杀死less进程

但是用fg命令却可以恢复less的运行。

root [ ~ ]# less readme.txt                                # 执行less

[1]+  Stopped                 less readme.txt                # 按Ctrl+z停止less进程
root [ ~ ]# fg                                                # 执行fg命令可以恢复到前台

虽然进程的停止和后台运行是不同概念,但是less进程既然已经接收到SIGCONT信号,那么它应该恢复到sleep状态,我不明白为何它不能到前台运行?
 楼主| 发表于 2011-8-9 05:09:52 | 显示全部楼层
怎么没人回复?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表