mirror of https://github.com/jumpserver/jumpserver
fix: 修改启动脚本
parent
0c96bf61ef
commit
7959f84bba
|
@ -117,11 +117,6 @@ class BaseService(object):
|
|||
sig = 9 if force else 15
|
||||
os.kill(self.pid, sig)
|
||||
|
||||
try:
|
||||
self.process.wait(2)
|
||||
except:
|
||||
pass
|
||||
|
||||
for i in range(self.STOP_TIMEOUT):
|
||||
if i == self.STOP_TIMEOUT - 1:
|
||||
print("\033[31m Error\033[0m")
|
||||
|
@ -143,14 +138,10 @@ class BaseService(object):
|
|||
def _check(self):
|
||||
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
print(f"{now} Check service status: {self.name} -> ", end='')
|
||||
try:
|
||||
self.process.wait(timeout=1) # 不wait,子进程可能无法回收
|
||||
except subprocess.TimeoutExpired:
|
||||
pass
|
||||
if self.is_running:
|
||||
print(f'running at {self.process.pid}')
|
||||
print(f'running at {self.pid}')
|
||||
else:
|
||||
print(f'stopped with code: {self.process.returncode}({self.process.pid})')
|
||||
print(f'stopped at {self.pid}')
|
||||
|
||||
def _restart(self):
|
||||
if self.retry > self.max_retry:
|
||||
|
@ -158,7 +149,7 @@ class BaseService(object):
|
|||
self.EXIT_EVENT.set()
|
||||
return
|
||||
self.retry += 1
|
||||
logging.info(f'> Find {self.name} stopped, retry {self.retry}, {self.process.pid}')
|
||||
logging.info(f'> Find {self.name} stopped, retry {self.retry}, {self.pid}')
|
||||
self.start()
|
||||
|
||||
def _rotate_log(self):
|
||||
|
|
21
jms
21
jms
|
@ -56,7 +56,7 @@ def check_database_connection():
|
|||
logging.info("Database connect success")
|
||||
return
|
||||
time.sleep(1)
|
||||
logging.error("Connection database failed, exist")
|
||||
logging.error("Connection database failed, exit")
|
||||
sys.exit(10)
|
||||
|
||||
|
||||
|
@ -85,7 +85,11 @@ def perform_db_migrate():
|
|||
logging.info("Check database structure change ...")
|
||||
os.chdir(os.path.join(BASE_DIR, 'apps'))
|
||||
logging.info("Migrate model change to database ...")
|
||||
subprocess.call('python3 manage.py migrate', shell=True)
|
||||
_code = subprocess.call('python3 manage.py migrate', shell=True)
|
||||
if _code == 0:
|
||||
return
|
||||
logging.error('Perform migrate failed, exit')
|
||||
sys.exit(11)
|
||||
|
||||
|
||||
def collect_static():
|
||||
|
@ -96,18 +100,19 @@ def collect_static():
|
|||
logging.info("Collect static files done")
|
||||
|
||||
|
||||
def upgrade_db():
|
||||
collect_static()
|
||||
perform_db_migrate()
|
||||
|
||||
|
||||
def prepare():
|
||||
# installer(check) & k8s(no check)
|
||||
check_database_connection()
|
||||
check_migrations()
|
||||
upgrade_db()
|
||||
expire_caches()
|
||||
|
||||
|
||||
def upgrade_db():
|
||||
collect_static()
|
||||
perform_db_migrate()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(
|
||||
description="""
|
||||
|
@ -139,7 +144,7 @@ if __name__ == '__main__':
|
|||
upgrade_db()
|
||||
else:
|
||||
services = args.services if isinstance(args.services, list) else [args.services]
|
||||
if action == 'start' and ({'gunicorn', 'all'} & set(services)):
|
||||
if action == 'start' and {'all', 'web'} & set(services):
|
||||
prepare()
|
||||
|
||||
services_string = ' '.join(services)
|
||||
|
|
Loading…
Reference in New Issue