我试过这些命令.
~$top
(ctrl + z)stopped the process
~$echo $?
147
~$top
(ctrl + c)killed the process
~$echo $?
0
Run Code Online (Sandbox Code Playgroud)
这里发生了什么,请解释一下,为什么它显示出一些恒定的价值.这些价值观的含义是什么?
Chr*_*ung 21
$?是上次运行进程的返回码.0表示没有发生错误.其他值代表某种不寻常的条件.
值128及以上通常代表某种信号.147 - 128 = 19,表示程序接收到信号19(SIGSTOP在Linux上).现在,通常按^ Z发送SIGTSTP(来自不同的信号SIGSTOP),这可能意味着top捕获了该信号,做了一些(可能与终端相关)清理,并重新发布SIGSTOP以实际暂停程序.
top也被捕获SIGINT(通常在按下^ C后发出),进行清理并干净地退出(退出值为0).
您可以运行kill -l以查看当前平台的所有信号编号.请注意,不同平台的数字不同; 例如,SIGSTOP在Darwin上是17,在Linux上是19.
| 归档时间: |
|
| 查看次数: |
31144 次 |
| 最近记录: |