Io-Redirection

echo/printf 重定向在後台程序中不起作用

  • December 15, 2016

我有這樣的命令:

sudo sh -c "echo $ADDR > /sys/class/gpio/export"

它從 shell 中正常執行,但如果我將它作為後台程序執行,我會收到以下錯誤:

沒有 tty 並且沒有指定 askpass 程序

我該如何解決這個問題?

謝謝

編輯我忘了向您展示我已完成的步驟:

  1. 通過 SSH 連接到我的嵌入式 linux。
  2. 通過“nohup &”執行包含上述命令的腳本。
  3. 現在該程序正在後台執行。
  4. 連接到 GPIO 板上的 LED 按預期工作。
  5. 我斷開 SSH 會話。
  6. LED 不再工作。
  7. 我通過 SSH 再次連接並進入文件nohup.out我讀到“沒有 tty 存在並且沒有指定 askpass 程序”。

聽起來問題在於您正在後台處理整個sudo過程,並且無法提示您輸入密碼。

你可以:

  • sudo執行其他東西並給它密碼,然後是你的命令(取決於你的 sudo 配置)或
  • 配置 sudo (via visudo) 以允許您的使用者/組在沒有密碼的情況下執行 sudo 命令:%wheel ALL=(ALL) NOPASSWD: ALL

第二個是一個更明智的解決方案,雖然顯然有更多的解決方案,但如果你解釋了你的主要需求,它會很有幫助。

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