echo/printf 重定向在后台进程中不起作用

echo/printf 重定向在后台进程中不起作用

我有一个这样的命令:

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 程序”。

答案1

听起来问题在于您正在后台运行整个sudo过程,并且它无法提示您输入密码。

你可以:

  • sudo运行其他程序并为其提供密码,然后输入您的命令(取决于您的 sudo 配置)或
  • 配置 sudo (通过visudo)以允许您的用户/组无需密码即可运行 sudo 命令:%wheel ALL=(ALL) NOPASSWD: ALL

第二个是一个更明智的解决方案,尽管显然还有更多的解决方案,但如果您解释了您的主要需求,它将有很大帮助。

答案2

相关内容