自定义服务¶
自定义服务是指在 scm目录中app
目录下自定义的服务,这些服务可以通过 bat
sh
脚本的方式调用,提供灵活强大的扩展能力,使用自定义托盘菜单进行快速管理。
创建服务¶
在 app
目录下创建一个目录,例如 app/nginx-1.14.2
,在 app
目录下创建一个启动,停止,重启,状态sh
文件, scm依赖这些关键文件进行服务的启动,停止,重启,状态等操作。 bat文件内容如下:
启动¶
nginx-start.sh
#!/bin/sh
# 进入当前目录
cd "$(dirname "$0")"
# 启动 Nginx
nginx-1.14.2/nginx -p ./nginx-1.14.2 &
# 检查启动是否成功
if [ $? -ne 0 ]; then
echo "Nginx konnte nicht gestartet werden"
echo "Nginx is start failed"
pause
else
echo "Nginx is start success"
fi
停止¶
nginx-stop.sh
#!/bin/sh
# 关闭 Nginx
echo "Nginx shutdown..."
cd "$(dirname "$0")"
ps aux | grep "nginx:" | grep -v "grep" | awk '{print $2}' | xargs kill -9
#echo $?
#ps aux | grep "nginx:" | grep -v "grep"
#echo $?
# 检查返回码
if [ $? -ne 0 ]; then
echo "Nginx is stop failed"
echo "Nginx could not be started"
else
echo "Nginx is stop success"
fi
重启¶
nginx-restart.sh
#!/bin/bash
echo "Nginx retstart..."
cd "$(dirname "$0")"
# 停止 Nginx
./nginx-stop.sh
# 启动 Nginx
./nginx-start.sh
状态¶
nginx-status.sh
#!/bin/sh
ps aux | grep "nginx:" |grep -v "grep"
if [ $? -ne 0 ]; then
echo Jar program is not running.
else
echo Jar program is running.
fi
注意:sh文件中的路径需要根据自己的实际情况进行修改。相关判断结构尽量不要打乱导致scm无法正常识别。
配置菜单¶
当服务创建完成后,需要在scm中进行配置,配置文件为 configurationFileSCM.json
,这个文件是JSON格式,你可以通过点击任务栏scm图标,选择编辑配置文件,打开加密配置文件编辑窗口,你可以在这个窗口中进行编辑修改。
模版¶
在scm项目目录上一级文件夹中创建 configurationFileSCM.json
文件,文件内容如下: configurationFileSCM.json
[
{
"name":"Nginx",
"btns":[
{
"name":"打开浏览器",
"exec":"./app/open-url.bat"
}
],
"start":"./app/nginx-start.bat",
"startIcon":":/images/0.png",
"stop":"./app/nginx-stop.bat",
"stopIcon":":/images/33.png",
"restart":"./app/nginx-restart.bat",
"restartIcon":":/images/1.png",
"autoStart":"true",
"autoStartIcon":"",
"startSort":"1",
"status":"./app/nginx-status.bat",
"conffile":[
{
"name":"nginx.conf",
"path":"./app/nginx-1.14.2/conf/nginx.conf"
}
],
"logIcon":":/images/36.png",
"logfile":"./app/nginx-1.14.2/logs/access.log"
}
]
字段解释¶
配置名字 | 说明 |
---|---|
name | scm菜单显示的名称 |
btns | 自定义扩展菜单选配,支持配置多个,但是只能配置一级子菜单 |
btns-name | 子菜单名称 |
btns-exec | 子菜单执行的bat sh 文件 |
start | 启动服务的bat sh 文件 |
startIcon | 启动服务的图标 |
stop | 停止服务的bat sh 文件 |
stopIcon | 停止服务的图标 |
restart | 重启服务的bat sh 文件 |
restartIcon | 重启服务的图标 |
autoStart | 是否开启服务守护 |
autoStartIcon | 服务守护图标 |
startSort | 服务启动顺序1优先级最高越大优先级越小 |
status | 服务状态的bat sh 文件 |
conffile | 配置文件选配,支持配置多个,但是只能配置一级子菜单 |
conffile-name | 子菜单名称 |
conffile-path | 子菜单执行的bat sh 文件 |
conffile-exec | 子菜单执行可执行程序或命令,目录命令 |
logIcon | 日志图标 |
logfile | 日志文件路径 |
生成菜单¶
点击任务栏scm图标,选择编辑配置文件。
打开加密配置文件编辑窗口,你可以在这个窗口中进行编辑修改。
点击加密配置信息
按钮,然后点击保存加密配置信息
按钮,保存到 config.json
文件中。
删除configurationFileSCM.json配置文件后,重启scm,菜单就不会显示编辑配置文件
菜单。
不建议使用编辑窗口中进行编辑复杂的JSON文件,建议使用编辑器进行编辑。
重启scm,点击菜单即可看到自定义的菜单。
验证菜单¶
重启后点击菜单,查看是否能正常启动,停止,重启,打开浏览器等操作。 可以打开scm日志查看是否有异常信息。
如果你在自定义服务中遇到任何问题可以扫码进微信群提问或是提交到issue中。