我尝试从子进程调用中使用 gnu screen 执行服务器守护进程,但它甚至没有启动

subprocess.call(["screen", "-dmS test ./server"])

有人告诉我运行 screen 需要终端,因此我不能简单地通过调用执行它。你能告诉我一些代码来做到这一点吗?

最佳答案

尝试

subprocess.call( ["screen", "-d", "-m", "-S", "test", "./server"] )

您需要将参数字符串分解为单独的参数,每个字符串一个。

这是 subprocess 文档中的相关引用:



因此,默认情况下,参数完全按照您提供的方式使用;它不会尝试将字符串解析为多个参数。如果您将 shell 设置为 true ,您可以尝试以下操作:
subprocess.call("screen -dmS test ./server", shell=True)

并且字符串将像命令行一样被解析。

关于python - 从python启动gnu屏幕?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10817929/

10-13 08:35