Io-Redirection
echo/printf 重定向在後台程序中不起作用
我有這樣的命令:
sudo sh -c "echo $ADDR > /sys/class/gpio/export"
它從 shell 中正常執行,但如果我將它作為後台程序執行,我會收到以下錯誤:
沒有 tty 並且沒有指定 askpass 程序
我該如何解決這個問題?
謝謝
編輯我忘了向您展示我已完成的步驟:
- 通過 SSH 連接到我的嵌入式 linux。
- 通過“nohup &”執行包含上述命令的腳本。
- 現在該程序正在後台執行。
- 連接到 GPIO 板上的 LED 按預期工作。
- 我斷開 SSH 會話。
- LED 不再工作。
- 我通過 SSH 再次連接並進入文件nohup.out我讀到“沒有 tty 存在並且沒有指定 askpass 程序”。
聽起來問題在於您正在後台處理整個
sudo
過程,並且無法提示您輸入密碼。你可以:
sudo
執行其他東西並給它密碼,然後是你的命令(取決於你的 sudo 配置)或- 配置 sudo (via
visudo
) 以允許您的使用者/組在沒有密碼的情況下執行 sudo 命令:%wheel ALL=(ALL) NOPASSWD: ALL
第二個是一個更明智的解決方案,雖然顯然有更多的解決方案,但如果你解釋了你的主要需求,它會很有幫助。