首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gnu-screen和call()的意外结果

gnu-screen和call()的意外结果
EN

Stack Overflow用户
提问于 2012-04-26 03:49:31
回答 2查看 79关注 0票数 0

作为一个更大的应用程序的一部分,我正在尝试使用subprocess.call()用python创建一个“屏幕”。

创建带有参数的屏幕-d -m应该在后台创建它,而不是切换到它。如果我在命令行上运行screen -d -m -S test,它会按预期工作。

但是,如果我尝试以下python代码:

代码语言:javascript
复制
cmd=["screen", "-d", "-m", "-S", "test"]
call(cmd,shell=True)

它会跳转到创建的屏幕。

call传递这些参数或运行命令的方式有什么不同吗?

EN

回答 2

Stack Overflow用户

发布于 2012-04-26 03:54:13

尝尝这个

代码语言:javascript
复制
cmd=["screen", "-d", "-m", "-S", "test", "bash"]
call(cmd)
票数 0
EN

Stack Overflow用户

发布于 2012-04-26 04:49:03

适用于我(没有shell=True)。

也就是说,使用以下脚本:

代码语言:javascript
复制
#!/usr/bin/env python
from subprocess import *
cmd=['screen', '-d', '-m', '-S', 'test']
call(cmd)

调用正确地启动了一个后台的屏幕进程:

代码语言:javascript
复制
$ 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.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10322727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档