您好我正在使用subprocess.call("sudo bash /home/pi/Desktop/switchtest.sh", shell=True)
来启动一个python脚本。 switchtest.sh
的内容是sudo python /home/pi/Desktop/switch1.py
。现在,使用相同的subprocess
调用如何停止运行python脚本?或者有没有其他方法可以阻止这种情况?使用子进程调用停止bash脚本
回答
subprocess.call是同步的,所以它将不会返回,直到您的脚本完成。你可以使用popen来实现异步:
p = subprocess.Popen("sudo bash /home/pi/Desktop/switchtest.sh", shell=True)
# do something else, polling or waiting perhaps
# now kill it
p.terminate()
我想从我的主程序启动其他程序。所以,我调用subprocess从一个函数启动程序,并在我的主程序中的另一个函数中停止它。 – bobdxcool 2014-10-22 04:10:17
@bobdxcool:通常,'p.terminate()'可能只会杀死直接的子进程,让孙子们继续运行。在这种情况下,请参阅[如何终止使用shell = True启动的python子进程](http://stackoverflow.com/q/4789837/4279)。 – jfs 2014-10-22 06:34:05
作为一个额外的改进,你应该省略不必要和浪费的'shell = True'。 – tripleee 2014-10-22 08:02:55
- 1. 子进程调用bash脚本
- 2. python子进程调用bash脚本 - 也需要打印报价
- 3. 如何找出调用php bash脚本的进程或脚本
- 4. 使用python子进程调用来调用python脚本
- 5. 如何在init.d进程中运行并停止bash脚本?
- 6. 不停止程序(使用shell脚本)
- 7. 使用qsub在另一个bash脚本中调用bash脚本
- 8. 主要的Python进程停止使用SocketServer中的子进程调用
- 9. 终止整个bash脚本而不是子进程
- 10. 使用CancellationToken停止进程
- 11. runit调用脚本与启动/停止
- 12. 本身调用bash脚本
- 13. bash脚本使用&&不停止的错误
- 14. 为什么我的bash脚本使用ffmpeg停止?
- 15. 使用bash或python脚本启动和停止GCE实例
- 16. 使用ssh调用bash脚本
- 17. 已停止运行的php停止脚本进程
- 18. bash脚本启动/停止ffmpeg x11grab
- 19. 如何正确停止bash脚本?
- 20. Bash启动和停止脚本
- 21. 从子进程调用bash函数
- 22. SAS程序调用UNIX Bash Shell脚本
- 23. 如何从bash脚本中终止脚本的Cygwin bash中的进程树
- 24. 每个进程使用bash脚本的CPU使用率
- 25. Bash脚本 - 守护进程
- 26. 从Bash脚本调用python脚本
- 27. 电子邮件停止发送时,运行VBA脚本调用和Excel脚本
- 28. 从PHP调用bash脚本
- 29. 从bash脚本调用grep
- 30. 测试使用子进程产生bash子shell的python脚本..有可能吗?
如何在不涉及python的情况下停止脚本? – 2014-10-22 02:57:58
你为什么要调用'sudo'两次?一次就够了。 – tripleee 2014-10-22 03:12:36
为什么你使用Python来运行一个shell来运行Bash来运行Python? – tripleee 2014-10-22 03:13:14