Closed amefs closed 8 months ago
很好的配置, 有几点疑惑:
若将配置文件放在 /etc/qBittorrent-ClientBlocker/ 下, 并在 /tmp/qBittorrent-ClientBlocker/ 下运行的话 (日志默认跟随 WorkingDirectory), 或许可以解决 root 用户的问题, 但这对普通用户来说可能不合理? (另: 若该配置与原有配置文件共存的话, 没有此问题, 已追加至 Wiki, 同时出于用户友好的角度已将所有 Systemd 的命名转化为小写)
WorkingDirectory
即可同时解决 config
和 logs
的路径问题。--user
,root 权限下则无法使用 --user
:
mkdir -p ~/.local/share/systemd/user/
tee ~/.local/share/systemd/user/qbittorrent-clientblocker.service >/dev/null <<EOF
[Unit]
Description=qBittorrent-ClientBlocker service
Wants=network-online.target
After=qbittorrent-nox.service
[Service]
Type=simple
Restart=always
WorkingDirectory=%h/.config/qBittorrent-ClientBlocker/
ExecStart=/usr/local/bin/qBittorrent-ClientBlocker
[Install]
WantedBy=multi-user.target
EOF
启动参数
systemctl --user daemon-reload
systemctl --user start qbittorrent-clientblocker.service
systemctl --user enable qbittorrent-clientblocker.service
sudo tee /etc/systemd/system/qbittorrent-clientblocker.service >/dev/null <<EOF
[Unit]
Description=qBittorrent-ClientBlocker service
Wants=network-online.target
After=qbittorrent-nox.service
[Service] Type=simple Restart=always WorkingDirectory=%h/.config/qBittorrent-ClientBlocker/ ExecStart=/usr/local/bin/qBittorrent-ClientBlocker
[Install] WantedBy=multi-user.target EOF
启动参数
```bash
systemctl daemon-reload
systemctl start qbittorrent-clientblocker.service
systemctl enable qbittorrent-clientblocker.service
谢谢! 已经提交至 Wiki! (另: 原有实例化配置仍保留, 但稍做修改)
systemd[1]: /etc/systemd/system/qbittorrent-clientblocker.service:9: Neither a valid executable name nor an absolute path: cd //.config/qBittorrent-ClientBlocker/ && /usr/local/bin/qBittorrent-ClientBlocker 经过测试, 使用 %h 会在部分系统引起 Root 目录为根目录的情况, 原因不明, 导致使用时因工作目录找不到出现如下错误: (code=exited, status=200/CHDIR)
由于工作目录不能设定为相对目录, 即使使用包含用户的字符串也是如此 (~%u/.config/qBittorrent-ClientBlocker/), 故还是回到修改 ExecStart 以期解决此问题. 因此现时配置文件将更改为如下:
[Unit]
Description=qBittorrent-ClientBlocker service
Wants=network-online.target
After=qbittorrent-nox.service
[Service]
Type=simple
Restart=always
ExecStart=/bin/sh -c "/usr/bin/cd ~%u/.config/qBittorrent-ClientBlocker/ && /usr/local/bin/qBittorrent-ClientBlocker"
[Install]
WantedBy=multi-user.target
(cd ~%u 同样可起到进入用户工作目录的作用, 是一种 workaround)
在添加了指定配置文件的参数后,完全可以在用户权限下运行该程序。以下是一个新的 Systemd unit 示例