Bluetooth
在後台呼叫 btmgmt 不起作用
當我通過 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 文件