我有一个这样的命令:
sudo sh -c "echo $ADDR > /sys/class/gpio/export"
它从 shell 正常运行,但如果我将其作为后台进程运行,则会出现以下错误:
不存在 tty 且未指定 Askpass 程序
我该如何解决这个问题?
谢谢
编辑我忘了向您展示我所做的步骤:
- 通过 SSH 连接到我的嵌入式 Linux。
- 通过“nohup &”运行包含上述命令的脚本。
- 现在该进程正在后台运行。
- 连接到 GPIO 板的 LED 按预期工作。
- 我断开 SSH 会话。
- LED 不再工作。
- 我通过 SSH 再次连接并进入文件nohup.out我读 ”不存在 tty 且未指定 Askpass 程序”。
答案1
听起来问题在于您正在后台运行整个sudo
过程,并且它无法提示您输入密码。
你可以:
sudo
运行其他程序并为其提供密码,然后输入您的命令(取决于您的 sudo 配置)或- 配置 sudo (通过
visudo
)以允许您的用户/组无需密码即可运行 sudo 命令:%wheel ALL=(ALL) NOPASSWD: ALL
第二个是一个更明智的解决方案,尽管显然还有更多的解决方案,但如果您解释了您的主要需求,它将有很大帮助。
答案2
我认为你最好将参数放在 /etc/sysfs.conf 中
看