在Python中启动一个屏幕并执行bash命令

时间:2017-11-13 14:59:58

标签: python bash

所以在Python中,我正在尝试创建一个unix屏幕并让它执行一个命令,但它不起作用。 屏幕不是事件创建的,如果我运行screen -ls

,我看不到它

这是代码:

def run_screen_with_command(command):
    screens = []

    command = ['screen', '-d', '-m', '-S', 'myscreen', 'bash', '-c', "'{}'".format(command)] 
    process = subprocess.Popen(command,
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT)

    process.wait()
    print(process.stderr, process.stdout.read())
    #returncode = process.wait()
    print ' '.join(command)

    return process


run_screen_with_command('sleep 10')

1 个答案:

答案 0 :(得分:2)

您不需要引用bash -c的参数,因为shell不会执行它。

command = ['screen', '-d', '-m', '-S', 'myscreen', 'bash', '-c', command]