Kód: Vybrať všetko
import subprocess,os,time
serverpath = "F:/xxxxx/xxxxx/xxxxx.exe" #cesta k serveru
logpath = "F:/xxxxx/xxxxx/xxxxx/xxxxx.txt" #cesta k log suboru
velkost = 52428800 #velkost suboru v bytes
cmd = serverpath #windowsovy prikaz k spusteniu programu, resp. to co zadavame to prikazoveho riadku ak to chceme spustit, s kompletnou cestou
p = subprocess.Popen(cmd, stdout=subprocess.PIPE) #spusti server
while True:
open(logpath, 'a').close()
s = os.path.getsize(logpath) #zisti velkost logu
s = int(s)
print("[Log] "+str(s)+"B")
if s > velkost: #ak je velkost logu vacsia ako velkost
p.kill() #zabi server
open(logpath, 'a').close()
os.remove(logpath) #pre istotu vymaz log
p = subprocess.Popen(cmd, stdout=subprocess.PIPE) #spusti server znova
time.sleep(5) # ak log nieje vacsi ako velkost počkaj 5 sekund a kontroluj znova ci sa to nezmenilo!v Skratke potrebujem zachovať presne to čo to robí tzn. ukončí a znova spustí process (server) keď log súbor presiahne 50mb a pridať to aby to kontrolovalo či process ( server) beží a náhodou nespadol, ak spadol tak aby to znova spustilo process (server) a ďalej kontrolovalo log.