多平台安装部署指南
Windows
Windows 下部署服务需要用到一系列批处理操作。
部署服务
你可以编写一个批处理脚本 (.bat
) 来实现这些功能。下面是一个可以满足你要求的脚本示例:
@echo off
SETLOCAL
REM 定义服务名称(用户可自定义)
SET "SERVICE_NAME=RhilexService"
REM 获取当前脚本所在路径
SET "EXE_PATH=%~dp0rhilex.exe"
REM 定义服务启动命令
SET "START_CMD=%EXE_PATH% run"
REM 定义服务描述
SET "SERVICE_DESC=Rhilex Service"
:menu
echo.
echo ============================
echo 请选择操作:
echo ============================
echo 1. 安装服务
echo 2. 启动服务
echo 3. 停止服务
echo 4. 重启服务
echo 5. 卸载服务
echo 6. 退出
echo ============================
echo.
SET /P choice=输入选项并按回车:
if "%choice%"=="1" goto install
if "%choice%"=="2" goto start
if "%choice%"=="3" goto stop
if "%choice%"=="4" goto restart
if "%choice%"=="5" goto uninstall
if "%choice%"=="6" goto end
goto menu
:install
sc query %SERVICE_NAME% >nul 2>&1
if %errorlevel% equ 0 (
echo 服务已存在,无法重复安装
goto menu
)
sc create %SERVICE_NAME% binPath= "%START_CMD%" start= auto DisplayName= "%SERVICE_NAME%" ^
Description= %SERVICE_DESC%
if %errorlevel% equ 0 (
echo 服务安装成功
) else (
echo 服务安装失败
)
goto menu
:start
sc start %SERVICE_NAME%
if %errorlevel% equ 0 (
echo 服务启动成功
) else (
echo 服务启动失败,可能服务未安装
)
goto menu
:stop
sc stop %SERVICE_NAME%
if %errorlevel% equ 0 (
echo 服务停止成功
) else (
echo 服务停止失败,可能服务未启动或未安装
)
goto menu
:restart
call :stop
call :start
goto menu
:uninstall
sc stop %SERVICE_NAME% >nul 2>&1
sc delete %SERVICE_NAME%
if %errorlevel% equ 0 (
echo 服务卸载成功
) else (
echo 服务卸载失败,可能服务未安装
)
goto menu
:end
echo 退出程序
ENDLOCAL
exit /b
如何使用
- 将此代码保存为
.bat
文件,例如manage_rhilex_service.bat
。 - 将
rhilex.exe
和此脚本放在同一目录下。 - 运行该
.bat
文件,然后按照提示选择要执行的操作。
脚本说明
- 安装服务:将
rhilex.exe
作为 Windows 服务安装,服务名为RhilexService
。 - 启动服务:启动该服务。
- 停止服务:停止该服务。
- 卸载服务:停止并删除该服务。
这个脚本设置了自动启动服务和添加了描述,你可以根据需要修改服务名称、描述或其他参数。
推荐 Windows10 以上的系统,其他版本未经严格测试。
Ubuntu、Debian(系列)
使用 Rhilex Daemon
rhilex-daemon.sh 是 RHILEX 提供的简单守护脚本,用 rhilex-daemon.sh 可以实现基本的安装卸载。rhilex-daemon.sh 脚本需要以 root
权限执行,或者使用 sudo
。
# 安装
sudo ./rhilex-daemon.sh install
# 启动
sudo ./rhilex-daemon.sh start
# 停止
sudo ./rhilex-daemon.sh stop
# 重启
sudo ./rhilex-daemon.sh restart
# 查看状态
sudo ./rhilex-daemon.sh status
设置开机启动
crontab 是 linux 下一个调度管理器,比较普遍,同时其具备开机执行脚本的功能,下面是 crontab 做开机自启动管理示例。当然如果你对其他的熟悉也可以用,比如 supervisor 之类。
# 打开crontab
sudo crontab -e
# 输入
@reboot (/etc/init.d/rhilex.service start > /var/log/rhilex.log 2>&1)
然后保存 crontab 文件,重启设备即可实现开机自启动。 除此之外还可以选择使用 System Service 脚本。
我们推荐用 rhilex-daemon.sh 来管理。
使用 Linux Systemd
如果你需要用 Systemd 守护进程,可以参考下面的步骤。
- 创建服务文件:首先,创建一个服务描述文件。例如,创建一个名为
rhilex.service
的文件在/etc/systemd/system/
目录下。 - 编辑服务文件:使用文本编辑器打开
rhilex.service
文件,并添加以下内容:
[Unit]
Description=Rhilex Service
After=network.target
[Service]
ExecStart=[你的程序路径]/rhilex.exe run -config [你的配置文件路径]/rhilex.ini
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
请确保将[你的程序路径]
和[你的配置文件路径]
替换成实际的路径。
- 启动服务:使用以下命令来启动服务:
systemctl start rhilex.service
- 设置服务开机自启:使用以下命令来设置服务开机自启:
systemctl enable rhilex.service
- 检查服务状态:使用以下命令来检查服务状态:
systemctl status rhilex.service
卸载服务
- 停止服务:使用以下命令来停止服务:
systemctl stop rhilex.service
- 禁用服务开机自启:使用以下命令来禁用服务开机自启:
systemctl disable rhilex.service
- 删除服务文件:删除之前创建的服务描述文件:
rm /etc/systemd/system/rhilex.service
- 重新加载
systemd
:运行以下命令来重新加载systemd
守护进程:
systemctl daemon-reload
请注意,在执行这些操作时确保具有相应的权限,因为这些操作会影响到系统的服务管理。
如果使用 Linux Systemd 脚本,会影响到在线升级固件功能。请注意这个细节。
OpenWrt 安装
大部分 openwrt 系统都把 Systemd 和其他一些系统守护进程裁剪了,所以在 openwrt 下推荐使用 Rhilex Daemon 脚本进行安装。细节可参考 Ubuntu 系统的操作文档。
命令行工具
RHILEX-CLI 是 RHILEX 命令行下的客户端工具,帮助我们调试和管理 RHILEX。
下载安装
下载地址:https://github.com/hootrhino/rhilex-cli/releases; (opens in a new tab) 根据自己的系统版本选择符合要求的包。
使用文档
- 查看系统参数
rhilexc system-info -host 127.0.0.1
- 查看输入资源
rhilexc inend-list -host 127.0.0.1
- 查看输出资源
rhilexc outend-list -host 127.0.0.1
- 创建设备
rhilexc device-create --config '[config]' -host 127.0.0.1
- 查看设备列表
rhilexc device-list -host 127.0.0.1
- 查看规则列表
rhilexc rules-list -host 127.0.0.1
- 创建输入资源
rhilexc inend-create --config '[config]' -host 127.0.0.1
- 创建输出资源
rhilexc outend-create --config '[config]' -host 127.0.0.1
- 创建规则脚本
rhilexc rules-create --config '[config]' -host 127.0.0.1
- 创建用户
rhilexc user-create --u [username] --p [password] -host 127.0.0.1
- 删除用户
rhilexc user-delete --u [username] -host 127.0.0.1
使用示例
获取用户列表:
rhilexc user-list -host 127.0.0.1 |jq
输出结果:
{
"code": 200,
"msg": "Success",
"data": [
{
"role": "admin",
"username": "admin",
"description": "admin"
},
{
"role": "admin",
"username": "www",
"description": ""
}
]
}
jq 是一个 JSON 处理库( https://jqlang.github.io/jq/ (opens in a new tab) ),需要提前安装。