Ich habe versucht, Subprozess zu verwenden, um Zeilen aus der Protokolldatei zu extrahieren. Die Absicht ist, die Protokolle zu extrahieren, während ein Programm ausgeführt wird, und einige Zeit zu warten, um alle Protokolle in eine andere Datei zu kopieren.Python, warum dieser Subprozessbefehl nicht wie erwartet funktioniert
#!/bin/python
import threading
import time, subprocess
class GetLogs(threading.Thread):
'''
Get the developer logs
'''
def __init__(self):
'''
init
'''
self.stop = False
threading.Thread.__init__(self)
print "Initialised thread"
def run(self):
'''
Collect the logs from devlog
'''
command = "tail -f /var/log/developer_log | tee /tmp/log_collected"
response = subprocess.check_output(command.split(), shell=True)
print "Subprocess called"+str(response)
while (self.stop is False):
time.sleep(1)
print "Continuing"
continue
print "Finished the log file"
gl = GetLogs()
gl.start()
##Do some activity here
print "Sleeping for 10 sec"
time.sleep(10)
gl.strop = True
print "Done"
Das funktioniert nicht - Programm bleibt hängen.
können Sie nicht Subprocess so warten – YOU