Python | os.WIFSIGNALED() method
Last Updated :
02 Jul, 2021
OS module in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system dependent functionality.
os.WIFSIGNALED() method in Python is used to check whether a process exited due to any signal. This method takes process status code as returned by os.wait(), os.system() or os.waitpid() method as a parameter and returns True if the process exited due to a signal, otherwise returns False.
Syntax: os.WIFSIGNALED(status)
Parameters:
status: This parameter takes process status code (an integer value) as returned by os.system(), os.wait() or os.waitpid() method.
Return type: This method returns a boolean value of class ‘bool’. This method returns True if process exited due to a signal, otherwise returns False.
Code #1: Use of os.WIFSIGNALED() method
Python3
import os
pid = os.fork()
if pid :
info = os.wait()
print ( "\nIn parent process" )
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()
|
Output:
In Child process
Process ID: 10224
Hello! Geeks
In parent process
Child process exited due a signal?
True
Code #2: Use of os.WIFSIGNALED() method
Python3
import os, signal
pid = os.fork()
if pid :
pid2 = os.fork()
if pid2 :
child1_info = os.waitpid(pid, 0 )
os.kill(pid2, signal.SIGKILL)
child2_info = os.waitpid(pid2, 0 )
print ( "\nIn parent process" )
isSignaled = os.WIFSIGNALED(child1_info[ 1 ])
print ( "First child process exited due to a signal?" )
print (isSignaled)
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" )
|
Output:
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
References: https://docs.python.org/3/library/os.html#os.WIFSIGNALED
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...