经常在宝塔页面启动、停止、部署项目,最常见的是从页面上进行操作
有时候需要从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