kopia lustrzana https://github.com/dgtlmoon/changedetection.io
				
				
				
			
		
			
				
	
	
		
			42 wiersze
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			42 wiersze
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| #!/usr/bin/python3
 | |
| 
 | |
| # Entry-point for running from the CLI when not installed via Pip, Pip will handle the console_scripts entry_points's from setup.py
 | |
| # It's recommended to use `pip3 install changedetection.io` and start with `changedetection.py` instead, it will be linkd to your global path.
 | |
| # or Docker.
 | |
| # Read more https://github.com/dgtlmoon/changedetection.io/wiki
 | |
| 
 | |
| from changedetectionio import changedetection
 | |
| import multiprocessing
 | |
| import signal
 | |
| import os
 | |
| 
 | |
| def sigchld_handler(_signo, _stack_frame):
 | |
|     import sys
 | |
|     print('Shutdown: Got SIGCHLD')
 | |
|     # https://stackoverflow.com/questions/40453496/python-multiprocessing-capturing-signals-to-restart-child-processes-or-shut-do
 | |
|     pid, status = os.waitpid(-1, os.WNOHANG | os.WUNTRACED | os.WCONTINUED)
 | |
| 
 | |
|     print('Sub-process: pid %d status %d' % (pid, status))
 | |
|     if status != 0:
 | |
|         sys.exit(1)
 | |
| 
 | |
|     raise SystemExit
 | |
| 
 | |
| if __name__ == '__main__':
 | |
| 
 | |
|     #signal.signal(signal.SIGCHLD, sigchld_handler)
 | |
| 
 | |
|     # The only way I could find to get Flask to shutdown, is to wrap it and then rely on the subsystem issuing SIGTERM/SIGKILL
 | |
|     parse_process = multiprocessing.Process(target=changedetection.main)
 | |
|     parse_process.daemon = True
 | |
|     parse_process.start()
 | |
|     import time
 | |
| 
 | |
|     try:
 | |
|         while True:
 | |
|             time.sleep(1)
 | |
| 
 | |
|     except KeyboardInterrupt:
 | |
|         #parse_process.terminate() not needed, because this process will issue it to the sub-process anyway
 | |
|         print ("Exited - CTRL+C")
 |