deploy: 添加 systemd 服务单元与配置模板(开机自启/自动重启/journald 日志)
This commit is contained in:
@@ -103,4 +103,27 @@ python3 /tmp/bolt_http_test.py # HTTP 端到端
|
||||
## 平台
|
||||
|
||||
- Linux / macOS(完整功能:进程组杀、信号处理)
|
||||
- Windows(基础功能:`cmd /C`、`taskkill /T` 杀进程树;无信号优雅退出)
|
||||
- Windows(基础功能:`cmd /C`、`taskkill /T` 杀进程树;无信号优雅退出)
|
||||
## systemd 服务部署(开机自启)
|
||||
|
||||
仓库内 `deploy/` 提供现成的部署文件:
|
||||
|
||||
```bash
|
||||
sudo install -m 0755 target/release/bolt /usr/local/bin/bolt
|
||||
sudo cp deploy/bolt.service /etc/systemd/system/
|
||||
sudo cp deploy/bolt.env.example /etc/bolt.env # 按需修改(监听地址在 service 文件 ExecStart)
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now bolt # 开机自启 + 立即启动
|
||||
```
|
||||
|
||||
常用管理命令:
|
||||
|
||||
```bash
|
||||
systemctl status bolt # 查看状态
|
||||
systemctl restart bolt # 重启(改完配置后)
|
||||
systemctl stop bolt # 停止
|
||||
systemctl disable bolt # 取消开机自启
|
||||
journalctl -u bolt -f # 实时查看日志
|
||||
```
|
||||
|
||||
特性:崩溃自动重启(`Restart=on-failure`,2 秒间隔)、优雅停机(SIGTERM 时杀掉所有子进程树)、日志进 journald、`LimitNOFILE=65536`。默认监听 `127.0.0.1:8080`,对外暴露前务必在 `/etc/bolt.env` 设置 `BOLT_TOKEN`。
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# bolt 服务配置文件(EnvironmentFile)
|
||||
# 修改后: systemctl restart bolt
|
||||
#
|
||||
# 注意:这是远程命令执行入口,监听公网时务必设置 BOLT_TOKEN!
|
||||
# 启动参数(监听地址)在 /etc/systemd/system/bolt.service 的 ExecStart 中修改。
|
||||
|
||||
# 认证令牌(必填,若监听 0.0.0.0 对外暴露)
|
||||
#BOLT_TOKEN=请改成强随机串
|
||||
|
||||
# 命令白名单(非空时仅允许列出的命令,用逗号分隔)
|
||||
#BOLT_ALLOW=git,docker,curl
|
||||
|
||||
# 命令黑名单(前缀匹配)
|
||||
#BOLT_DENY=rm,mkfs
|
||||
|
||||
# 默认命令超时毫秒(0 = 无限)
|
||||
#BOLT_TIMEOUT_MS=30000
|
||||
|
||||
# 默认工作目录
|
||||
#BOLT_CWD=/root
|
||||
|
||||
# 单流输出捕获上限(支持 K/M/G)
|
||||
#BOLT_MAX_OUTPUT=1M
|
||||
|
||||
# 额外允许的 HTTP Origin(默认仅 localhost/127.0.0.1)
|
||||
#BOLT_ALLOW_ORIGIN=https://example.com
|
||||
@@ -0,0 +1,28 @@
|
||||
[Unit]
|
||||
Description=bolt - 极速单文件 MCP 命令执行服务器
|
||||
Documentation=https://git.jocay.qzz.io/jocay/bolt
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/bolt --http 127.0.0.1:8080
|
||||
# 修改监听地址示例(对外暴露请务必在 /etc/bolt.env 设置 BOLT_TOKEN):
|
||||
# ExecStart=/usr/local/bin/bolt --http 0.0.0.0:8080
|
||||
EnvironmentFile=-/etc/bolt.env
|
||||
Restart=on-failure
|
||||
RestartSec=2
|
||||
# 优雅停机:收到 SIGTERM 后 bolt 会杀掉全部子进程再退出
|
||||
TimeoutStopSec=10
|
||||
# 日志进 journald
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=bolt
|
||||
|
||||
# 安全加固(保持宽松:命令执行需要完整权限)
|
||||
# ProtectSystem / ProtectHome 不开启,否则子命令无法写文件
|
||||
NoNewPrivileges=false
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user