0

より大きなアプリケーションの一部として、を使用して python で「画面」を作成しようとしていますsubprocess.call()

引数-d -mを使用して画面を作成すると、バックグラウンドで作成され、切り替えられません。screen -d -m -S testコマンドラインで実行すると、期待どおりに動作します。

ただし、次の python-code を試してみると:

cmd=["screen", "-d", "-m", "-S", "test"]
call(cmd,shell=True)

作成した画面にジャンプします。

call がこれらの引数を渡す方法やコマンドを実行する方法に違いはありますか?

4

2 に答える 2

0

これを試して

cmd=["screen", "-d", "-m", "-S", "test", "bash"]
call(cmd)
于 2012-04-25T19:54:12.780 に答える
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.
于 2012-04-25T20:49:02.920 に答える