You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

qBittorrent-nox执行自定义外部shell脚本无响应问题排查求助

qBittorrent-nox执行自定义外部shell脚本无响应问题排查求助

这种情况大概率是环境变量差异或者脚本执行上下文的问题,我给你列几个实用的排查方向:

  • 用绝对路径调用脚本:qBittorrent-nox作为服务类程序,默认的PATH环境变量可能很有限,未必包含/usr/local/bin。试试在qBittorrent的配置里直接写脚本的完整路径:/usr/local/bin/movefile "%F",而不是只写movefile "%F"——找不到脚本路径是最常见的坑。

  • 给脚本加上shebang头:你的脚本有没有在最开头加上#!/bin/bash?如果没加,qBittorrent可能会用系统默认的sh来执行,虽然这个脚本逻辑简单,但不同shell的行为差异也可能导致执行失败。修改后的脚本应该是:

    #!/bin/bash
    path=$1
    mv "$path" "$path-copy"
    
  • 添加日志捕获执行细节:给脚本加上日志输出,就能直观看到脚本是否被调用、有没有报错。比如修改脚本为:

    #!/bin/bash
    # 日志输出到临时文件,方便排查
    echo "脚本启动时间: $(date)" >> /tmp/movefile_debug.log
    echo "收到的参数路径: $1" >> /tmp/movefile_debug.log
    # 把mv的输出和错误都写入日志
    mv "$1" "$1-copy" >> /tmp/movefile_debug.log 2>&1
    echo "脚本结束时间: $(date)" >> /tmp/movefile_debug.log
    

    完成一次下载后查看/tmp/movefile_debug.log:如果日志没生成,说明脚本根本没被调用;如果有日志,就能看到mv命令是否有权限问题、路径是否正确。

  • 检查安全机制限制:部分系统开启了SELinux或AppArmor,可能会限制qBittorrent调用外部脚本。可以临时关闭试试(比如执行sudo setenforce 0),如果关闭后脚本能正常运行,再去配置对应的安全规则放行脚本的调用。

  • 验证参数传递的引号处理:如果下载文件的路径包含空格,qBittorrent的参数引号处理可能出问题。试试把命令改成/usr/local/bin/movefile '%F',或者在脚本里用"$@"代替$1(虽然你只需要第一个参数,但这种写法能更稳妥地接收带空格的路径)。

我之前碰到过几乎一模一样的问题,就是因为服务的PATH没包含自定义目录,换成绝对路径调用就解决了。你先从这几个方向排查看看!

备注:内容来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:23:03