在后台调用 btmgmt 不起作用

在后台调用 btmgmt 不起作用

当我通过 SSH 连接到一台机器并运行btmgmt find它时,它在产生输出的意义上“有效”。

但是,当我通过运行此命令时

  • 一个 cron 作业,或者
  • 我从 cron 作业中分离的脚本,或者
  • 我正在执行并与 SSH 会话分离的脚本

它不会产生任何输出,甚至不会产生错误消息。

知道为什么吗?

答案1

这似乎与一个已知的错误有关(https://www.spinics.net/lists/linux-bluetooth/msg85222.htmlbtmgmt如果没有交互式标准输入存在/断开连接,它就会默默地失败。一个简单的解决方法是:

yes | btmgmt

答案2

假设您使用某些 Linux 发行版,您在使用 cron 作业或脚本时是否将输出重定向到文件?默认情况下,cron 将输出通过电子邮件发送给拥有 cron 作业的用户。

请参见https://www.man7.org/linux/man-pages/man8/cron.8.html

Cron 检查所有存储的 crontab 并检查每个作业以查看它是否需要在当前分钟运行。执行命令时,任何输出都会邮寄给 crontab 的所有者(或者发送给 crontab 中 MAILTO 环境变量中指定的用户,如果存在的话)。还可以使用 -s 选项将任何作业输出发送到 syslog。

此外,如果您在后台运行脚本,则需要将标准输出重定向到一个文件,以便您检查输出。对于前。

/my/home/script.sh >> output.txt 2>&1- 这会将输出和错误消息重定向到 /my/home 下的 output.txt 文件

相关内容