echo/printf 리디렉션이 백그라운드 프로세스에서 작동하지 않습니다.

echo/printf 리디렉션이 백그라운드 프로세스에서 작동하지 않습니다.

다음과 같은 명령이 있습니다.

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

셸에서는 잘 실행되지만 백그라운드 프로세스로 실행하면 다음 오류가 발생합니다.

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 구성에 따라 다름).
  • visudo사용자/그룹이 비밀번호 없이 sudo 명령을 실행할 수 있도록 sudo(pass)를 구성합니다 .%wheel ALL=(ALL) NOPASSWD: ALL

두 번째는 더 합리적인 솔루션입니다. 물론 더 많은 솔루션이 있지만 주요 요구 사항을 설명하면 많은 도움이 될 것입니다.

답변2

내 생각에는 /etc/sysfs.conf에 매개변수를 넣는 것이 좋을 것 같습니다.

바라보다

https://serverfault.com/questions/373624/suggestions-for-making-sysfs-parameters-persist-across-reboots

관련 정보