Files
yakpanel-core/script/run_script.py
2026-04-07 02:04:22 +05:30

60 lines
1.9 KiB
Python

#coding: utf-8
#-------------------------------------------------------------------
# YakPanel
#-------------------------------------------------------------------
# Copyright (c) 2015-2099 YakPanel(www.yakpanel.com) All rights reserved.
#-------------------------------------------------------------------
# Author: hwliang <hwl@yakpanel.com>
#-------------------------------------------------------------------
#------------------------------
# 项目开机自启调用脚本
#------------------------------
import os,sys
panel_path = '/www/server/panel'
os.chdir(panel_path)
if not 'class/' in sys.path: sys.path.insert(0,'class/')
import public,time,psutil
def project_model_auto_run():
'''
@name 项目模型自启调用
@author hwliang<2021-08-09>
@return bool
'''
project_model_path = '{}/projectModel'.format(public.get_class_path())
if not os.path.exists(project_model_path): return False
for mod_name in os.listdir(project_model_path):
if mod_name in ['base.py','__init__.py']: continue
mod_file = "{}/{}".format(project_model_path,mod_name)
if not os.path.exists(mod_file): continue
if not os.path.isfile(mod_file): continue
tmp_mod = public.get_script_object(mod_file)
if not hasattr(tmp_mod,'main'): continue
run_object = getattr(tmp_mod.main(),'auto_run',None)
if run_object: run_object()
def start():
run_tips = '/dev/shm/bt_auto_run.pl'
boot_time = psutil.boot_time()
stime = time.time()
if os.path.exists(run_tips):
last_time = int(public.readFile(run_tips))
if boot_time < last_time: return False
if stime - 3600 > boot_time: return False
# --------------------- 调用自启动程序 ---------------------
project_model_auto_run()
# --------------------- 结束调用 ---------------------
public.writeFile(run_tips,str(int(stime)))
if __name__ == '__main__':
start()