适用于 qBittorrent-nox 的 systemd

创建文件 /etc/systemd/system/qbittorrent-nox.service,填入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Unit]
Description=qBittorrent-nox Daemon # 服务描述,systemctl status 会显示这个
After=network.target remote-fs.target # 本服务在网络可用(network.target)和远程文件系统(remote-fs.target)挂载完成后再启动
Wants=remote-fs.target # 软依赖,尝试启动远程文件系统挂载,如果失败不阻止本服务启动

[Service]
Type=simple # 简单服务类型,ExecStart 启动后 systemd 不会进一步监控子进程
User=<User> # 以哪个用户身份运行服务,避免权限问题
Group=<User> # 以哪个用户组运行服务
Environment=HOME=/home/<User> # 设置 HOME 环境变量,确保配置文件和日志路径正确
WorkingDirectory=/home/<User> # 设置工作目录,防止相对路径问题
ExecStart=</path/to/qbittorrent-nox> --webui-port=10180 --profile=/home/<User>/.config/qBittorrent
# 启动命令:qbittorrent-nox + 指定 WebUI 端口 + 配置文件目录
ExecStop=/bin/kill -s SIGINT $MAINPID # 停止服务时发送 SIGINT 给主进程,让程序优雅退出并保存配置
Restart=on-failure # 如果服务意外退出,自动重启
RestartSec=5 # 重启前等待 5 秒
KillSignal=SIGINT # 默认发送的停止信号为 SIGINT,让程序可以保存数据
KillMode=process # 只发送信号给主进程,不影响其它进程
TimeoutStopSec=30 # 停止服务时等待最多 30 秒让程序优雅退出

[Install]
WantedBy=multi-user.target # 开机启动目标,多用户模式启动时自动启动本服务

所有 <> 包裹的部分需要手动修改。主要是用户名和 qbittorrent-nox 的位置。

重载配置:

1
sudo systemctl daemon-reload

启用服务并运行:

1
sudo systemctl enable --now qbittorrent-nox