作为更大应用程序的一部分,我正在尝试使用subprocess.call()
创建一个使用python的“屏幕”。
使用参数-d -m
创建屏幕应该在后台创建它而不是切换到它。如果我在命令行上运行screen -d -m -S test
,它会按预期工作
但是,如果我尝试以下python代码:
cmd=["screen", "-d", "-m", "-S", "test"]
call(cmd,shell=True)
它跳转到创建的屏幕。
调用如何传递这些参数或运行命令有什么不同吗?
答案 0 :(得分:0)
试试这个
cmd=["screen", "-d", "-m", "-S", "test", "bash"]
call(cmd)
答案 1 :(得分:0)
适合我(没有shell=True
)。
即,使用以下脚本:
#!/usr/bin/env python
from subprocess import *
cmd=['screen', '-d', '-m', '-S', 'test']
call(cmd)
调用正确启动后台屏幕进程:
$ screen -ls
No Sockets found in /var/run/screen/S-cduffy.
$ ./screen-startup-test
$ screen -ls
There is a screen on:
12161.test (04/25/2012 03:47:32 PM) (Detached)
1 Socket in /var/run/screen/S-cduffy.