~/tmp/sleeper.sh运行Python REPL:$python>>>import subprocessimport os..._python 调用其它exe 创建独立进程">
当前位置:   article > 正文

python启动另外一个pc的进程_python – 启动一个完全独立的进程

python 调用其它exe 创建独立进程

您打开长时间运行的流程并保持管道.所以你希望与它交谈.当yor启动程序脚本退出时,您无法再与它通信.长时间运行的进程收到一个SIGPIPE并退出.

以下内容对我有用(Linux,Python 2.7).

创建一个长期运行的可执行文件

$echo "sleep 100" > ~/tmp/sleeper.sh

运行Python REPL:

$python

>>>

import subprocess

import os

p = subprocess.Popen(['/bin/sh', os.path.expanduser('~/tmp/sleeper.sh')])

# look ma, no pipes!

print p.pid

# prints 29893

退出REPL并看到进程仍在运行:

>>> ^D

$ps ax | grep sleeper

29893 pts/0 S 0:00 /bin/sh .../tmp/sleeper.sh

29917 pts/0 S+ 0:00 grep --color=auto sleeper

如果您想首先与已启动的流程进行通信,然后将其单独运行以进一步运行,您可以选择以下几种方法:

>在长时间运行的过程中处理SIGPIPE,不要死在它上面.启动程序进程退出后,没有标准输入.

>使用参数,环境或临时文件传递您想要的任何内容.

>如果要进行双向通信,请考虑使用命名管道(man mkfifo)或套接字,或编写适当的服务器.

>在最初的双向通信阶段完成后,使长时间运行的进程分叉.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/74764
推荐阅读
相关标签
  

闽ICP备14008679号