sudo를 사용하여 터미널에서 시작 프로그램 실행 시작시 열리고

터미널에서 myscript.py (Lubunt)에서 파이썬 스크립트를 실행해야합니다 . 이 스크립트에는 루트가 필요합니다.

.desktop다음 명령을 실행 하는 파일을 설정했습니다 .

lxterminal --command="python /home/d/Jarvis/alarm.py && /bin/bash"

터미널 창은 시작시 열리고 스크립트를 실행하지만 Python 스크립트가 루트로 실행되지 않기 때문에 오류가 발생하면 닫힙니다. 내가 이것을 변경하면 Exec=

lxterminal --command="sudo python /home/d/Jarvis/alarm.py && /bin/bash"

… (접두사로 명령 sudo)이 작동합니다. 그러나 터미널은 시작시 열리고

[sudo] password for d: \

프롬프트가 표시되면 비밀번호를 입력해야합니다. 시작시 파이썬 스크립트 실행이 사용자 상호 작용없이 완전히 자동으로 수행되기를 원합니다.

어떻게하면됩니까?



답변

로그인하지 않고 시작시 (X 서버를 시작하지 않고 LXTerminal을 여는 방법을 볼 수 없기 때문에) 원하는 경우 / etc / sudoers 파일에 예외를 추가해야합니다. 너의 비밀번호.

이렇게하려면 sudo visudo다음을 실행 한 후 추가하십시오.

<your username> ALL = NOPASSWD: /home/d/Jarvis/alarm.py

이 작업을 수행하려면 파일 끝에 추가해야합니다. 또한 alarm.py이것이 작동하도록 실행 가능 권한을 설정합니다 . 따라서 이것을 실행 파일로 설정하십시오.

chmod +x /home/d/Jarvis/alarm.py

그것이 도움이되기를 바랍니다!


답변

루트로 시작할 때 실행되는 사용자 정의 스크립트는을 통해 실행할 수 있습니다 rc.local.

/etc/rc.local루트 권한으로 편집하십시오 .

sudo nano /etc/rc.local

그리고 라인을 넣어

python /home/d/Jarvis/alarm.py

마지막 줄 바로 앞에 exit 0있습니다. 작동하는지 확인하려면 재부팅하십시오.