nohup을 사용하여 백그라운드에서 프로그램을 실행할 때 sudo 오류가 발생함

nohup을 사용하여 백그라운드에서 프로그램을 실행할 때 sudo 오류가 발생함

다음은 스크립트를 program.py사용하여 터미널에서 간단한 exec를 실행합니다 .nohup

cd "$(dirname "$0")"
sudo -v
nohup sudo python3 program.py &
killall Terminal

비밀번호를 묻는 메시지가 표시되고 그렇게 하면 터미널을 종료하는 비밀번호가 허용되지만 프로그램이 실패하고 이 오류가 다음에 추가됩니다 nohup.out. sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper

나는 ~하려고 노력한다

sudo -v
nohup sudo -S python3 program.py &

그러나 이것은 오류를 제공합니다

sudo: no password was provided

비밀번호를 입력했는데도

미리 감사드립니다!

답변1

명령 순서를 변경할 수도 있습니다.

sudo nohup python3 program.py &

이 방법이 sudo입니다. 매개변수를 사용하여 nohup 명령을 시작하고 python3을 터미널에서 연결 해제합니다. 하지만 다시 생각해 보면 /usr/bin/nohup python3 program.pysudoers 파일에서 이를 승인해야 하는 것 외에도 백그라운드에 들어가는 것이 있습니다. nohup 명령 대신 sudo 명령입니다.

따라서 백그라운드 작업과 권한 상승을 분리하려면 명령 이 /root/mypylauncher.sh포함된 스크립트 를 생성하고 .nohup python3 program.py &sudo /root/mypylauncher.shchown root:rootchmod go-w

관련 정보