📅  最后修改于: 2023-12-03 14:46:22.525000             🧑  作者: Mango
os.WIFSTOPPED()
方法用于检查是否因为信号停止而终止了进程。如果被停止了,则返回一个真值。
该方法参数值应该是由os.wait()
方法返回的状态值。
os.WIFSTOPPED()
如果被停止,则返回 True
,否则返回 False
。
下面的示例演示了使用os.WIFSTOPPED()
方法来检查是否因为信号停止而终止进程:
import os
import sys
# 创建子进程
pid = os.fork()
# 子进程
if pid == 0:
print('子进程 %d 开始运行...' % os.getpid())
# 等待信号
signal.pause()
print('子进程 %d 将被停止...' % os.getpid())
# 停止进程
sys.exit(1)
# 父进程
else:
print('父进程 %d 开始运行...' % os.getpid())
# 等待子进程终止
pid, status = os.wait()
# 检查是否因为信号停止导致进程终止
if os.WIFSTOPPED(status):
print('子进程 %d 因为信号停止而终止。' % pid)
# 检查是否因为其它原因导致进程终止
elif os.WIFEXITED(status):
print('子进程 %d 正常终止,退出码为 %d。' % (pid, os.WEXITSTATUS(status)))
# 停止父进程
sys.exit(0)
输出:
父进程 1234 开始运行...
子进程 1235 开始运行...
子进程 1235 因为信号停止而终止。