Search the Community
Showing results for tags 'stdout'.
-
Sveicināti. Uz W2008 R2 servera darbojas Python 2.7.12 skripts, kurš cikliski izpilda zināmas darbības un beidz darbu pēc tam, kad ir nospiests ctrl/c. Līdzīgi, ka šajā piemērā. from time import sleep import sys signaled_to_stop = False sheep_counter = 1 print "Running.. (press CTRL-C to stop)" while True: try: # Wait 3 seconds between each step. sleep(3) print "Counting sheeps... %s" % sheep_counter sheep_counter += 1 # If signaled to stop then - Create a peepfile and stop the loop if signaled_to_stop: print "Stop requested..." if signaled_to_stop: break except KeyboardInterrupt: print "\nStopping (might take some seconds).." signaled_to_stop = True except SystemExit as err: raise err print "Process has finished." palaižam skiptu: python cikls.py Running.. (press CTRL-C to stop) Counting sheeps... 1 Counting sheeps... 2 Counting sheeps... 3 Counting sheeps... 4 Counting sheeps... 5 Stopping (might take some seconds).. Counting sheeps... 6 Stop requested... Process has finished. Divi jautājumi: 1. Kā panākt to, lai skripta darbības rezultāts nepārtraukti rakstītos teksta failā? Savukārt, teksta fails atjaunatots ("refrešotos") tā, lai jebkurā brīdī varētu redzēt līdz kurai "aitai" skripts ir ticis? Variants ar parasto stdout pāradresāciju darbojas..., python cikls.py > rezultats.log bet fails izveidojas tikai pašās beigās, tad, kad skripta darbība ir pārtraukta ar ctrl/c. Skripta darbības laikā log faila garums visu laiku ir 0 (log fails ir tukšs). 2. Kā palaist skriptu automātiski pēc servera pārstartēšanās? Es mēģināju ielikt windows scheduler. Skripts palaižas, bet uzreiz beidz darbu. cikls.py