Simple-Tracker / qBittorrent-ClientBlocker

一款适用于 qBittorrent/Transmission (Beta)/BitComet (Beta, Partial) 的客户端屏蔽器, 默认屏蔽包括但不限于迅雷等客户端. A client blocker compatible with qBittorrent/Transmission (Beta)/BitComet (Beta, Partial) which is prohibited to include but not limited to clients such as Xunlei.
MIT License
840 stars 20 forks source link

关于普通用户服务 #73

Closed irort closed 2 months ago

irort commented 2 months ago

我的操作系统是 kubuntu 23.10 我在 ~/.config/systemd/user/ 添加了qbittorrent-clientblocker.service, 但是ubuntu并没有/use/bin/cd 这个文件, 会导致服务启动报错:

May 16 21:00:06 kubuntu systemd[847]: Started qbittorrent-clientblocker.service - qBittorrent-ClientBlocker service.
May 16 21:00:06 kubuntu systemd[847]: qbittorrent-clientblocker.service: Main process exited, code=exited, status=127/n/a
May 16 21:00:06 kubuntu systemd[847]: qbittorrent-clientblocker.service: Failed with result 'exit-code'.
May 16 21:00:06 kubuntu systemd[847]: qbittorrent-clientblocker.service: Scheduled restart job, restart counter is at 1.
May 16 21:00:06 kubuntu systemd[847]: Stopped qbittorrent-clientblocker.service - qBittorrent-ClientBlocker service.

于是我将用户服务进行了修改, 去掉了 /usr/bin/ , 并且如果执行 systemctl --user enable qbittorrent-clientblocker.service的话, 会有关于multi-user.target不存在的警告, 所以这里我换成了default.target, 修改后的 .service是:

[Unit]
Description=qBittorrent-ClientBlocker service
Wants=network-online.target
After=qbittorrent-nox.service

[Service]
Type=simple
Restart=always
ExecStart=/bin/sh -c "cd %h/.config/qBittorrent-ClientBlocker/ && %h/.local/bin/qBittorrent-ClientBlocker --nochdir"

[Install]
WantedBy=default.target

可执行文件我扔到了 ~/.local/bin/ 下, 希望开发者看到的话可以测试一下, 在RHEL等系统上普通用户服务是否可行

Simple-Tracker commented 2 months ago

感谢反馈!

已将 /usr/bin/cd 修改为 /bin/cd 以期解决此问题.

根据查询, default.target 通常符号链接指向 multi-user.target 或 graphical.target, 因此替换是可以接受的.

Simple-Tracker commented 2 months ago

视作完成而关闭!

irort commented 2 months ago

已将 /usr/bin/cd 修改为 /bin/cd 以期解决此问题.

好吧, 我之前的回复说的不够清楚, 我在其他的发行版(archlinux, debian, ubuntu, gentoo)中都没有找到 /usr/bin/cd或者 /bin/cd这个可执行文件, 如果执行 /usr/bin/cd或 /bin/cd会直接提示"没有那个文件或目录". 只有在RHEL系(我使用的rocky linux 9), dnf provides cd的输出中, bash这个包明确提供了 /usr/bin/cd这个文件. 所以, 为了普适性, 我认为改为 cd ...更好

Simple-Tracker commented 2 months ago

已重新修改, 看起来部分 OS 没有提供单独的文件, 而是集成在 Shell 内. 在 Ubuntu 的测试下证实 sh 也可以使用 cd, 因此相信此次修改应该没有问题.