python怎么关闭当前进程

Python (214) 2023-07-15 09:36:07

利用命令行对进程进行删除,windows下利用“taskkill /pid ' + str(pid) + ' /f”;linux下利用“kill + str(pid)”

简介

在 Python 的项目开发中,程序有时会需要管理(例如停止)其它后台进程。

可以通过 os.getpid() 函数以及 os.system() 来实现这一功能。

示例

在同一个目录下创建 3 个脚本文件:

1 要停止的进程

创建脚本文件 count.py ,内容如下:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
importtime
importos
#获取进程的pid
pid=os.getpid()
print('pid:',pid)
#将pid写入本地文件
f1=open(file='count_pid.txt',mode='w')
f1.write(pid.__str__())
f1.close()
#开始计数并打印
n=0
whileTrue:
n+=1
print(n)
time.sleep(1)
importtime importos #获取进程的pid pid=os.getpid() print('pid:',pid) #将pid写入本地文件 f1=open(file='count_pid.txt',mode='w') f1.write(pid.__str__()) f1.close()、 #开始计数并打印 n=0 whileTrue: n+=1 print(n) time.sleep(1)
importtime
importos
#获取进程的pid
pid=os.getpid()
print('pid:',pid)
#将pid写入本地文件
f1=open(file='count_pid.txt',mode='w')
f1.write(pid.__str__())
f1.close()、
#开始计数并打印
n=0
whileTrue:
n+=1
print(n)
time.sleep(1)

运行这个脚本,这样就得到了一个在后台持续运行的进程。

2 用来停止进程的函数

创建脚本文件 kill.py ,内容如下:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
importos
defkill(pid):
#本函数用于中止传入pid所对应的进程
ifos.name=='nt':
#Windows系统
cmd='taskkill/pid'+str(pid)+'/f'
try:
os.system(cmd)
print(pid,'killed')
exceptExceptionase:
print(e)
elifos.name=='posix':
#Linux系统
cmd='kill'+str(pid)
try:
os.system(cmd)
print(pid,'killed')
exceptExceptionase:
print(e)
else:
print('Undefinedos.name')
importos defkill(pid): #本函数用于中止传入pid所对应的进程 ifos.name=='nt': #Windows系统 cmd='taskkill/pid'+str(pid)+'/f' try: os.system(cmd) print(pid,'killed') exceptExceptionase: print(e) elifos.name=='posix': #Linux系统 cmd='kill'+str(pid) try: os.system(cmd) print(pid,'killed') exceptExceptionase: print(e) else: print('Undefinedos.name')
importos
defkill(pid):
#本函数用于中止传入pid所对应的进程
ifos.name=='nt':
#Windows系统
cmd='taskkill/pid'+str(pid)+'/f'
try:
os.system(cmd)
print(pid,'killed')
exceptExceptionase:
print(e)
elifos.name=='posix':
#Linux系统
cmd='kill'+str(pid)
try:
os.system(cmd)
print(pid,'killed')
exceptExceptionase:
print(e)
else:
print('Undefinedos.name')

从其它程序中调用这个脚本中定义的 kill() 函数,即可中止指定进程。

3 控制程序

创建脚本文件 manager.py ,内容如下:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromkillimportkill
#读取pid
f1=open(file='count_pid.txt',mode='r')
pid=f1.read()
f1.close()
#调用kill函数,终止进程
kill(pid=pid)
fromkillimportkill #读取pid f1=open(file='count_pid.txt',mode='r') pid=f1.read() f1.close() #调用kill函数,终止进程 kill(pid=pid)
fromkillimportkill
#读取pid
f1=open(file='count_pid.txt',mode='r')
pid=f1.read()
f1.close()
#调用kill函数,终止进程
kill(pid=pid)

运行这个脚本,就可以读取到 count.py 对应进程的 pid ,并通过它中止该进程。

推荐课程:零基础入门学习Python(小甲鱼)

THE END

发表回复