跳转至

自定义服务

自定义服务是指在 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中。