python与linux shell交互管理系统进程
目标:找到特定名称的进程并kill之
1 #!/usr/bin/env python
2 #coding:utf-8
3 # PSI and psutil can do this
4 import re
5 import os
6 import time
7 import subprocess
8
9 def kill_by_pid():
10 grep_cmd = 'ps aux | grep dev_server.py'
11 data = subprocess.Popen(grep_cmd,
12 stdout = subprocess.PIPE,
13 shell = True)
14
15 sep = re.compile('[\s]+')
16 for line in iter(data.stdout.readline, ''):
17 pid = sep.split(line)[1]
18 kill_cmd = 'kill %s' % pid
19 # 其中有两个进程是ps和grep的,会显示没有此进程,忽略即可
20 print('kill %s' % pid)
21 subprocess.Popen(kill_cmd,
22 shell = True)
23 time.sleep(2)
24
25
26 if __name__ == '__main__':
27 kill_by_pid()
貌似注释中提到的PSI和psutil更方便,可以返回结构性的信息。但是需要安装新的包。
浙公网安备 33010602011771号