Python os.kill()方法
Python os.kill() 方法用于向具有指定进程id的进程发送指定的信号。在信号模块中定义了主机平台上可用的特定信号的常量。
os.kill 语法
os.kill(pid, sig)
os.kill 参数
pid:整型值,表示要发送信号的进程号。
一个整数,表示信号数或信号常量,在被发送的信号模块中定义的主机平台可用。
返回类型:此方法不返回任何值。
os.kill 示例1
使用 os.kill() 方法
# Python program to explain os.kill() 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 :
print("\nIn parent process")
# send signal 'SIGSTOP'
# to the child process
# using os.kill() method
# 'SIGSTOP' signal will
# cause the process to stop
os.kill(pid, signal.SIGSTOP)
print("Signal sent, child stopped.")
info = os.waitpid(pid, os.WSTOPPED)
# waitpid() method returns a
# tuple whose first attribute
# represents child's pid
# and second attribute
# representing child's status indication
# os.WSTOPSIG() returns the signal number
# which caused the process to stop
stopSignal = os.WSTOPSIG(info[1])
print("Child stopped due to signal no:", stopSignal)
print("Signal name:", signal.Signals(stopSignal).name)
# send signal 'SIGCONT'
# to the child process
# using os.kill() method
# 'SIGCONT' signal will
# cause the process to continue
os.kill(pid, signal.SIGCONT)
print("\nSignal sent, child continued.")
else :
print("\nIn child process")
print("Process ID:", os.getpid())
print("Hello ! Geeks")
print("Exiting")
输出:
In child process
In parent process
Signal sent, child stopped.
Child stopped due to signal no: 19
Signal name: SIGSTOP
Signal sent, child continued.
Process ID: 5166
Hello! Geeks
Exiting