Torrent下载完成后,传输将不会运行shell脚本

a0x5cqrl  于 2023-02-05  发布在  Shell
关注(0)|答案(2)|浏览(121)

我期待有传输bittorrent客户端执行一个脚本,更改所有者和权限的所有种子在完成文件夹时,种子完成下载。
我正在使用/etc/transmission-daemon/settings.json中的以下相关设置:

"download-dir": "/data/transmission/completed",
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/home/user/script.sh",

Torrent下载完成后,脚本似乎没有执行,我知道除了脚本本身的内容之外,还有其他问题。脚本文件的所有者是debian-transmission,我的权限设置为777,所以Transmission访问脚本应该不会有问题,除非我错过了什么。
/home/user/script.sh文件如下所示:

#!/bin/bash
echo sudopassword | /usr/bin/sudo -S /bin/chmod -f -R 777 /data/transmission/completed
echo sudopassword | /usr/bin/sudo -S /bin/chown -f -R user /data/transmission/completed

我知道以这种方式使用sudo命令是不礼貌的,但我可以自己执行脚本,它将正常工作。我不确定为什么Transmission不执行脚本。Transmission支持一些环境变量,如TR_TORRENT_NAME,我希望在触发脚本时使用这些变量。文件中是否有什么东西我没有设置,会阻止脚本正常工作?我应该如何使用环境变量?

mccptt67

mccptt671#

我可能会在这里回答不同的问题,但如果您只是为了获得您的用户对传输守护程序下载的写入权限,请尝试不同的方法。
我正在我的用户名下运行我的Transmission Daemon,正如在它的systemd服务文件中设置的那样。(在我的例子中是/etc/systemd/system/multi-user.target.wants/transmission-daemon.service

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=myuser      # set user here
Group=mygroup    # set group here :) 
UMask=0022       # 0022 gives 644 permissions on files (u+w), 0002 gives 644 (g+w), 0000 gives 666 (a+w)
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecStop=/bin/kill -s STOP $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

请注意UserGroupUMask(带有大写M)指令,参见Execution environment configuration for Systemd manpage
然后运行:

sudo chown -fR user /data/transmission/completed
sudo systemctl daemon-reload
sudo service transmission-daemon restart

并且您应该设置:)

c7rzv4ha

c7rzv4ha2#

将执行脚本的 * 用户 * 添加到具有默认 * sudo * 访问权限的 * 组 * 中。
Fedora-将用户添加到wheel

一米一分一秒

Ubuntu-用户组:sudoadmin(已弃用)

相关问题