📜  Python| os.WIFSTOPPED() 方法(1)

📅  最后修改于: 2023-12-03 14:46:22.525000             🧑  作者: Mango

Python | os.WIFSTOPPED() 方法

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 因为信号停止而终止。