如果是程序crash了,比如空指针引用,段错误之类的,进程的退出码是固定的么?怎么知道进程是正常退出的还是crash的?
现在我看到是139.。
3x
企鹅
用wait或waitpid回收子进程,可判断出是正常结束的还是因为段错误引发的信号结束的。
【 在 wxstorm 的大作中提到: 】
: 如果是程序crash了,比如空指针引用,段错误之类的,进程的退出码是固定的么?怎么知道进程是正常退出的还是crash的?
: 现在我看到是139.。
: 3x
在shell脚本里能判断么?
【 在 tucano (tucano) 的大作中提到: 】
: 用wait或waitpid回收子进程,可判断出是正常结束的还是因为段错误引发的信号结束的。
你指的是特殊变量$? 显示上一命令返回值吧
: 在shell脚本里能判断么?
换py写脚本
【 在 wxstorm (企鹅) 的大作中提到: 】
Shell 里面被信号杀死的进程表现为 $? > 128
减去 128 得到对应的信号,可以用 kill -l 直接看信号名字
/tmp % kill -l 11
SEGV
/tmp % kill -l 139
/tmp % echo $((139-128))
11
ps. 按惯例程序主动退出的只用 [0,127] 以内的返回值。如果非要有程序 exit(139) 也是可以的,这时候从 shell 里面就区分不开了..