我希望能够启动一个进程,然后能够将其杀死之后有没有办法用python启动/停止linux进程?
7
A
回答
8
看看subprocess
模块。 您也可以通过os
模块使用低级基元,如fork()
。
3
3
使用子模块的简单函数:
def CMD(cmd) :
p = subprocess.Popen(cmd, shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=False)
return (p.stdin, p.stdout, p.stderr)
0
看到原始的fork()和模块subprocess,multiprocessing文档,multithreading
0
如果您需要与子相互作用过程中,我推荐pexpect模块(link text)。您可以向流程发送输入,接收(或“期望”)输出,您可以关闭流程(使用force = True发送SIGKILL)。
13
这是一个小小的python脚本,它启动一个进程,检查它是否正在运行,等待一段时间,杀死它,等待它终止,然后再次检查。它使用'kill'命令。 python子进程的版本2.6有一个kill函数。这是写在2.5。
import subprocess
import time
proc = subprocess.Popen(["sleep", "60"], shell=False)
print 'poll =', proc.poll(), '("None" means process not terminated yet)'
time.sleep(3)
subprocess.call(["kill", "-9", "%d" % proc.pid])
proc.wait()
print 'poll =', proc.poll()
定时输出显示它在大约3秒后终止,而不是60表示睡眠呼叫提示。
$ time python prockill.py
poll = None ("None" means process not terminated yet)
poll = -9
real 0m3.082s
user 0m0.055s
sys 0m0.029s
相关问题
- 1. 有没有办法在暂停状态下启动进程?
- 2. 有没有办法用bat文件启动/停止oracle 12c?
- 3. 有没有办法停止启动的功能?
- 4. 有没有办法多次启动和停止SwingWorker ..?
- 5. Linux守护进程停止启动 - 停止守护进程
- 6. 有没有办法用远程工作目录启动进程?
- 7. 有没有办法停止magento索引器进程?
- 8. 有没有办法停止couchdb索引器进程?
- 9. 有没有办法从Eclipse启动/停止/重新启动REMOTE Tomcat服务器?
- 10. 有没有办法停止OnItemSaving事件?
- 11. 有没有办法来防止:悬停?
- 12. 有没有办法停止MouseListener?
- 13. 有没有办法停止QGraphicsScene?
- 14. 有没有办法强制Firefox在新进程中启动?
- 15. 有没有办法使用eclipse在特定点启动和停止PHP代码?
- 16. 有没有办法阻止用户交互暂停动画?
- 17. 启动 - 停止守护进程和Python
- 18. 有没有办法停止进一步的标签按钮
- 19. 有没有办法在primefaces中自动启动进度条?
- 20. 有没有办法暂停animateWithDuration一旦启动?
- 21. 有没有办法从maven启动EAR?
- 22. 如何在Python中使用子进程模块启动和停止Linux程序?
- 23. 有没有办法无意中停止Executor的线程?
- 24. 有没有办法以编程方式停止web.py?
- 25. 有没有办法停止和恢复C程序
- 26. 有没有办法立即停止线程?
- 27. 有没有办法在concurrent.futures中停止正在运行的进程?
- 28. 有没有办法阻止捕获停止我的Java应用程序?
- 29. 有没有办法从Firefox和铬启动EXE应用程序
- 30. 有没有办法启动一个Express应用程序?
您可以用'os.kill(..)'杀掉进程 – 2015-03-11 16:00:53
甚至'proc.terminate()'或'proc.kill()'因为Python 2.6 – 2015-03-11 16:27:59