다음은 스크립트를 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.py
sudoers 파일에서 이를 승인해야 하는 것 외에도 백그라운드에 들어가는 것이 있습니다. nohup 명령 대신 sudo 명령입니다.
따라서 백그라운드 작업과 권한 상승을 분리하려면 명령 이 /root/mypylauncher.sh
포함된 스크립트 를 생성하고 .nohup python3 program.py &
sudo /root/mypylauncher.sh
chown root:root
chmod go-w