我有以下代码:
#!/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)
我想知道如果我杀死线程运行的进程,它也会关闭吗?如果没有,我如何终止线程,以便能够再次运行它,并对我要执行的文件进行新的更改? 我试图在google中找到一些停止线程的东西,但当我将它添加到while语句的第一行时,它对我无效。你知道吗
不,它不会终止,因为值
daemon
默认为False,这意味着当主进程完成时线程不会停止,它是完全独立的。但是,如果将线程的守护进程值设置为True
,那么只要主进程也运行,它就会运行。你知道吗为此,您可以删除
StartJar
类并定义jarFileRun
像这样:或者在类内为
daemon
创建一个init定义如果终止进程,则与该进程对应的所有线程都将终止。如果终止进程中的某个线程,进程仍将运行。你知道吗
相关问题 更多 >
编程相关推荐