2017-11-13 3 views
1

Also in Python, ich versuche, einen Unix-Bildschirm erstellen und führen Sie einen Befehl, aber es funktioniert nicht. Der Bildschirm nicht Ereignis erstellt wird, und ich kann es nicht sehen, ob ich screen -lsStarten eines Bildschirms und Ausführen eines Bash-Befehls in Python

Diese laufen ist der Code:

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') 

Antwort

2

Sie brauchen nicht für bash-c das Argument zu zitieren, da die Shell führt es nicht aus.

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

Danke !!!! Es klappt –

Verwandte Themen