跳转至

自定义服务

自定义服务是指在 scm目录中app 目录下自定义的服务,这些服务可以通过 bat sh 脚本的方式调用,提供灵活强大的扩展能力,使用自定义托盘菜单进行快速管理。

创建服务

app 目录下创建一个目录,例如 app/nginx-1.14.2,在 app 目录下创建一个启动,停止,重启,状态bat文件, scm依赖这些关键文件进行服务的启动,停止,重启,状态等操作。 bat文件内容如下:

启动

nginx-start.bat

@echo off
cd /D %~dp0

REM setlocal EnableDelayedExpansion 

start /B "nginx" nginx-1.14.2\nginx.exe  -p ./nginx-1.14.2
if errorlevel 1 goto error
goto finish

:error
echo.
echo Nginx konnte nicht gestartet werden
echo Nginx is start failed
pause

:finish
echo.
echo Nginx is start success

停止

nginx-stop.bat

@echo off
cd /D %~dp0
echo Nginx shutdowm ...


start nginx-1.14.2\nginx -s stop -p ./nginx-1.14.2

if errorlevel 1 goto error
goto finish

:error
echo.
echo Nginx is stop failed
echo Nginx could not be started
pause

:finish
echo.
echo Nginx is stop success

重启

nginx-restart.bat

@echo off
cd /D %~dp0

call nginx-stop.bat
call nginx-start.bat

状态

nginx-status.bat

@echo off
tasklist | findstr /C:"nginx.exe" > nul
if %errorlevel% == 1 (
    echo Jar program is not running.
) else (
    echo Jar program is running.
)

注意:bat文件中的路径需要根据自己的实际情况进行修改。相关判断结构尽量不要打乱导致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中。