次のコマンドがあります。
sudo sh -c "echo $ADDR > /sys/class/gpio/export"
シェルではうまく動作しますが、バックグラウンドプロセスとして実行すると、次のエラーが発生します。
ttyが存在せず、Askpassプログラムが指定されていません。
この問題をどのように解決できますか?
ありがとう
編集する私が行ったステップをお見せするのを忘れました。
- SSH経由で組み込みLinuxに接続します。
- "nohup &"を介して上記のコマンドを含むスクリプトを実行します。
- これで、プロセスはバックグラウンドで実行されています。
- GPIOボードに接続されたLEDが期待どおりに動作します。
- SSHセッションを切断します。
- LEDが動作しなくなりました。
- SSH経由で再接続してファイルを入力しました。nohup.out読んだ」ttyが存在せず、Askpassプログラムが指定されていません。」。
答え1
問題は、sudo
プロセス全体をバックグラウンドで実行していて、パスワードの入力を求められないことです。
あなたはできます:
sudo
別のプログラムを実行し、パスワードを入力してコマンドを入力します(Sudo構成によって異なります)。visudo
ユーザー/グループがパスワードなしでsudoコマンドを実行できるようにsudo(pass)を設定します。%wheel ALL=(ALL) NOPASSWD: ALL
第二は、より合理的な解決策です。もちろん、より多くの解決策がありますが、主な要件を説明すると多くの助けになります。
答え2
私の考えでは、/etc/sysfs.confにパラメータを入れるのが良いと思います。
バラより