mirror of https://github.com/jumpserver/jumpserver
				
				
				
			[Update] 修改jms启动脚本,stop时增加超时检测
							parent
							
								
									87deb18791
								
							
						
					
					
						commit
						7cf617c3fc
					
				
							
								
								
									
										25
									
								
								jms
								
								
								
								
							
							
						
						
									
										25
									
								
								jms
								
								
								
								
							| 
						 | 
				
			
			@ -65,6 +65,7 @@ logging.basicConfig(
 | 
			
		|||
EXIT_EVENT = threading.Event()
 | 
			
		||||
LOCK = threading.Lock()
 | 
			
		||||
files_preserve = []
 | 
			
		||||
STOP_TIMEOUT = 10
 | 
			
		||||
 | 
			
		||||
logger = logging.getLogger()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +121,7 @@ def check_pid(pid):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def get_pid_file_path(s):
 | 
			
		||||
    return os.path.join('/tmp', '{}.pid'.format(s))
 | 
			
		||||
    return os.path.join(TMP_DIR, '{}.pid'.format(s))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_log_file_path(s):
 | 
			
		||||
| 
						 | 
				
			
			@ -433,9 +434,19 @@ def stop_service(srv, sig=15):
 | 
			
		|||
        if not is_running(s):
 | 
			
		||||
            show_service_status(s)
 | 
			
		||||
            continue
 | 
			
		||||
        logging.info("Stop service: {}".format(s))
 | 
			
		||||
        print("Stop service: {}".format(s), end='')
 | 
			
		||||
        pid = get_pid(s)
 | 
			
		||||
        os.kill(pid, sig)
 | 
			
		||||
        for i in range(STOP_TIMEOUT):
 | 
			
		||||
            if i == STOP_TIMEOUT - 1:
 | 
			
		||||
                print("\033[31m Error\033[0m")
 | 
			
		||||
            if not is_running(s):
 | 
			
		||||
                print("\033[32m Ok\033[0m")
 | 
			
		||||
                break
 | 
			
		||||
            else:
 | 
			
		||||
                time.sleep(1)
 | 
			
		||||
                continue
 | 
			
		||||
 | 
			
		||||
        with LOCK:
 | 
			
		||||
            processes.pop(s, None)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -472,9 +483,9 @@ def show_service_status(s):
 | 
			
		|||
    for ns in services_set:
 | 
			
		||||
        if is_running(ns):
 | 
			
		||||
            pid = get_pid(ns)
 | 
			
		||||
            logging.info("{} is running: {}".format(ns, pid))
 | 
			
		||||
            print("{} is running: {}".format(ns, pid))
 | 
			
		||||
        else:
 | 
			
		||||
            logging.info("{} is stopped".format(ns))
 | 
			
		||||
            print("{} is stopped".format(ns))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
| 
						 | 
				
			
			@ -499,6 +510,7 @@ if __name__ == '__main__':
 | 
			
		|||
    )
 | 
			
		||||
    parser.add_argument('-d', '--daemon', nargs="?", const=1)
 | 
			
		||||
    parser.add_argument('-w', '--worker', type=int, nargs="?", const=4)
 | 
			
		||||
    parser.add_argument('-f', '--force', nargs="?", const=1)
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
    if args.daemon:
 | 
			
		||||
        DAEMON = True
 | 
			
		||||
| 
						 | 
				
			
			@ -513,7 +525,10 @@ if __name__ == '__main__':
 | 
			
		|||
        start_services_and_watch(srv)
 | 
			
		||||
        os._exit(0)
 | 
			
		||||
    elif action == "stop":
 | 
			
		||||
        stop_service(srv)
 | 
			
		||||
        if args.force:
 | 
			
		||||
            stop_service_force(srv)
 | 
			
		||||
        else:
 | 
			
		||||
            stop_service(srv)
 | 
			
		||||
    elif action == "restart":
 | 
			
		||||
        DAEMON = True
 | 
			
		||||
        stop_service(srv)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue