gpt4 book ai didi

python : os.spawn 。无法在后台启动 bash 进程

转载 作者:行者123 更新时间:2023-11-28 22:59:51 25 4
gpt4 key购买 nike

任务是从 python 脚本执行 bash 脚本并让它在后台执行,即使 python 脚本将完成。我需要 UNIX 解决方案,我不关心它是否不能在 Win 上运行。

Python 脚本:

#!/usr/bin/env python
import os, commands
command = '/usr/bin/ssh localhost "/home/gd/test/python/back.sh " '
print os.spawnlp(os.P_NOWAIT,command)
print "Python done"

/home/gd/test/python/back.sh :

#!/usr/bin/bash

/bin/echo "started"
/bin/sleep 80
/bin/echo "ended"

问题是,当 python 脚本启动时,我看到打印了派生进程的 PID。但是后台没有进程。当我使用 P_WAIT 时,我看到退出代码 127,这意味着在路径中找不到该命令。但是我已经提供了所有可能的路径?这些脚本与 commands.getouput 完美配合。

最佳答案

像这样的东西应该可以工作

#!/usr/bin/env python
import os
command = ['/usr/bin/ssh', 'ssh', 'localhost', '/home/gd/test/python/back.sh']
print os.spawnlp(os.P_NOWAIT, *command)
print "Python done"

请注意,最好使用 subprocess模块在这里而不是 spawn

#!/usr/bin/env python
from subprocess import Popen
command = ['/usr/bin/ssh', 'localhost', '/home/gd/test/python/back.sh']
print Popen(command)
print "Python done"

关于 python : os.spawn 。无法在后台启动 bash 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com