Python中的OS模塊提供了與操作係統進行交互的函數。操作係統屬於Python的標準實用程序模塊。該模塊提供了使用依賴於操作係統的函數的便攜式方法。
os.WIFSIGNALED()
Python中的方法用於檢查進程是否由於任何信號而退出。此方法采用流程狀態代碼,由os.wait()
,os.system()
或者os.waitpid()
方法作為參數,如果進程由於信號而退出,則返回True,否則返回False。
用法: os.WIFSIGNALED(status)
參數:
status:此參數采用os.system(),os.wait()方法或os.waitpid()方法返回的過程狀態代碼(整數值)。
返回類型:此方法返回“布爾”類的布爾值。如果進程由於信號而退出,則此方法返回True,否則返回False。
代碼1:用於os.WIFSIGNALED()
方法
# Python program to explain os.WIFSIGNALED() method
# importing os module
import os
# Create a child process
# using os.fork() method
pid = os.fork()
# pid greater than 0
# indicates the parent process
if pid :
# Wait for the completion of
# the child process and get
# its pid and
# exit status indication
info = os.wait()
# info is a tuple
# info[0] represents child's id
# info[1] represents exit status code
print("\nIn parent process")
# Check whether the child process
# exited due to a signal
# using os.WIFSIGNALED() method
signaled = os.WIFSIGNALED(info[1])
print("Child process exited due a signal?")
print(signaled)
else :
print("In Child process")
print("Process ID:", os.getpid())
print("Hello ! Geeks")
# os.abort() method will
# generate a SIGABRT signal
# to the current process
os.abort()
輸出:
In Child process Process ID: 10224 Hello! Geeks In parent process Child process exited due a signal? True
代碼2:用於os.WIFSIGNALED()
方法
# Python program to explain os.WIFSIGNALED() method
# importing os and signal module
import os, signal
# Create a child process
# using os.fork() method
pid = os.fork()
# pid greater than 0
# indicates the parent process
if pid :
# Create one more child
pid2 = os.fork()
if pid2 :
# Wait for the completion of
# first child process and get
# its pid and
# exit status indication
# using os.waitpid() method
child1_info = os.waitpid(pid, 0)
# Send signal 'SIGKILL' to
# second child process
# using os.kill() method
# and get its pid and
# exit status code
# using os.waitpid() method
os.kill(pid2, signal.SIGKILL)
child2_info = os.waitpid(pid2, 0)
# os.waitpid() method
# returns a tuple which
# represnts child's pid
# and exit status code
print("\nIn parent process")
# Check whether the first child
# process exited due a signal
# using os.WIFSIGNALED() method
isSignaled = os.WIFSIGNALED(child1_info[1])
print("First child process exited due to a signal?")
print(isSignaled)
# Check whether the second child
# process exited due a signal
# using os.WIFSIGNALED() method
isSignaled = os.WIFSIGNALED(child2_info[1])
print("Second child process exited due to a signal?")
print(isSignaled)
else :
print("\nIn second child process")
print("Process id:", os.getpid())
print("Hey ! there")
while True :
print("Waiting for signal..")
else :
print("In first child process")
print("Process ID:", os.getpid())
print("Hello ! Geeks")
print("Exiting")
輸出:
In First child process Process ID: 3752 Hello! Geeks In second child process Process id: 3753 Hey! there Waiting for signal.. Waiting for signal.. Waiting for signal.. Waiting for signal.. Waiting for signal.. In parent process First child process exited due to a signal? False Second child process exited due to a signal? True
參考文獻: https://docs.python.org/3/library/os.html#os.WIFSIGNALED
相關用法
- Python next()用法及代碼示例
- Python os.dup()用法及代碼示例
- Python set()用法及代碼示例
- Python Decimal max()用法及代碼示例
- Python PIL ImageOps.fit()用法及代碼示例
- Python os.rmdir()用法及代碼示例
- Python sympy.det()用法及代碼示例
- Python Decimal min()用法及代碼示例
- Python os.readlink()用法及代碼示例
- Python os.writev()用法及代碼示例
- Python os.readv()用法及代碼示例
- Python PIL RankFilter()用法及代碼示例
- Python os.rename()用法及代碼示例
- Python os.sendfile()用法及代碼示例
注:本文由純淨天空篩選整理自ihritik大神的英文原創作品 Python | os.WIFSIGNALED() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。