返回状态wait()或waitpid()编码您需要的信息.
POSIX宏是:
WIFEXITED(status)如果孩子通过exit()其亲属或其亲属退出,则返回true .WEXITSTATUS(status) 告诉你退出状态是什么(0..255).WIFSIGNALED(status) 如果孩子因信号(任何信号)退出,则返回true.WTERMSIG(status) 返回杀死孩子的信号.非标准但常见的宏WCOREDUMP(status)告诉您进程是否转储了核心.您还可以判断状态是否反映过程已停止或继续(以及停止信号是什么).
注意,信号15通常是SIGTERM,SIGTERM可以被应用程序捕获.无法捕获的信号是SIGKILL(9)和SIGSTOP(Mac OS X上的17;在任何地方可能都不一样).
那么问题是如果
bash为脚本提供此信息.
答案是肯定的,但只是间接而不是100%毫不含糊.报告的状态值bash将128 + <signum>用于因信号<signum>而终止的进程,但是您无法区分退出状态130的进程,例如,SIGINT中断的进程,即信号2.
| 归档时间: |
|
| 查看次数: |
1151 次 |
| 最近记录: |