宝塔面板从脚本启动、停止、重启项目

宝塔面板
2023-10-07 14:36:33

经常在宝塔页面启动、停止、部署项目,最常见的是从页面上进行操作

有时候需要从git服务器自动拉取代码,如果每次去操作这个重启操作比较烦,用以下这个脚本可以实现自动化重启、开始、停止项目的操作。

go项目为例

↓ 会员用户可见内容 ↓
python 复制代码
#!/www/server/panel/pyenv/bin/python
#coding: utf-8
import os,sys
os.chdir("/www/server/panel")
sys.path.insert(0,"class/")

# 主要是修改goModel这个变量
from projectModel.goModel import main
import public
p = main()

if len(sys.argv) < 3:
    print("Usage: go-service [project_name] [start|stop|restart]")
    sys.exit()
get = public.dict_obj()
get.project_name = sys.argv[1].strip()
action = sys.argv[2].strip()
if action not in ['start','stop','restart','status']:
    print("Usage: go-service [project_name] [start|stop|restart]")
    sys.exit()

if action == 'start':
    res = p.start_project(get)
elif action == 'stop':
    res = p.stop_project(get)
elif action == 'restart':
    res = p.restart_project(get)
elif action == 'status':
    res = p.get(get)

if res['status']:
    print("\033[1;32mSUCCESS: " + res['data'] + "\033[0m")
else:
    print("\033[1;31mERROR: " + res['error_msg'] + "\033[0m")

将以上文件放入:/www/server/panel/script/go-service.py这个文件当中。

其余项目按照以下对应关系修改,命名对应文件,放入/www/server/panel/script当中

txt 复制代码
go 项目
`from projectModel.goModel import main`

javaModel 项目
`from projectModel.javaModel import main`

python 项目
`from projectModel.pythonModel import main`

nodejsModel 项目
`from projectModel.nodejsModel import main`

实际上,宝塔面板默认安装了`nodejsModel`这个脚本。

执行启动/停止/重启项目命令如下:

/www/server/panel/pyenv/bin/python /www/server/panel/script/go-service.py [项目名称] stop

/www/server/panel/pyenv/bin/python /www/server/panel/script/go-service.py [项目名称] start

/www/server/panel/pyenv/bin/python /www/server/panel/script/go-service.py [项目名称] restart