Bluetooth

在後台呼叫 btmgmt 不起作用

  • February 24, 2022

當我通過 SSH 連接到一台機器並執行btmgmt find它時,它會在產生輸出的意義上“工作”。

但是,當我通過執行此命令時

  • 一個 cron 作業,或
  • 我要從 cron 作業中分離的腳本,或者
  • 我正在執行並從 SSH 會話中分離的腳本

它不會產生任何輸出,甚至不會產生錯誤消息。

知道為什麼嗎?

這似乎與一個已知的錯誤(https://www.spinics.net/lists/linux-bluetooth/msg85222.html)有關btmgmt,如果沒有互動式標準輸入/斷開連接,它只會靜默失敗。一個簡單的解決方法是:

yes | btmgmt

假設您使用的是某個 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 文件

引用自:https://unix.stackexchange.com/questions/690371