Ich habe folgenden Code:Wenn ich den Prozess beende, würde der Thread auch aufhören?
#!/usr/bin/python3
import os
import subprocess
import time
import threading
class StartJar(threading.Thread):
def run(self):
os.system("java -jar <nazwa_appki>.jar")
jarFileRun = StartJar
current_location = subprocess.getoutput("pwd")
while True:
x = subprocess.getstatusoutput("git checkout master && git reset --hard && git fetch && git pull")
if x[0] is 0:
os.system("git checkout master && git reset --hard && git fetch && git pull")
os.system("mvn clean package ~/your/path")
try:
process_pid = subprocess.check_output(['pgrep', '-f', 'tu_podaj_nazwe_procesu']).decode()
except subprocess.CalledProcessError as e:
print("pgrep failed because ({}):".format(e.returncode), e.output.decode())
else:
try:
os.kill(int(process_pid), 9)
print('Process with ' + process_pid + ' PID was killed.')
except ProcessLookupError as e:
print("Process were old...")
except ValueError as e:
print("There is no such process!")
os.system("cp ~/your/path" + ' ' + current_location)
jarFileRun.start()
else:
print('No changes was made...')
time.sleep(1800)
Und ich frage mich, ob ich mein Prozess, der Thread läuft töten, wäre es auch in der Nähe? Wenn nicht, wie beende ich den Thread, um ihn mit neuen Änderungen, die für die Datei ausgeführt wurden, die ich ausführen möchte, noch einmal ausführen zu können? Ich habe versucht, in Google etwas zu finden, das den Thread stoppt, aber es hat nicht funktioniert, als ich es in die erste Zeile von while-Anweisung eingefügt habe.
Ja. Die Lauffläche läuft innerhalb des Prozesses, wenn der Prozess stirbt, dann tut es auch den Faden darin. Aber das ist einfach genug, um sich selbst zu testen. – cdarke
Warum führen Sie Java als Thread, warum nicht einfach als Hintergrundprozess? – cdarke