저는 X분 동안 휴면 상태를 유지한 다음 시스템 휴면 명령을 실행하는 간단한 bash 함수를 작성하려고 합니다(제가 보기에는 sudo pm-suspend
Ubuntu에 있기 때문입니다). 이제 함수는 다음과 같습니다.
function sleepin {
sleep $(bc <<< $1*60); sudo pm-suspend
}
첫 번째 매개변수는 몇 분 후에 잠을 자야 하는지입니다. 문제는 잠자기 후에 스크립트에서 sudo 비밀번호를 묻는 메시지를 표시한다는 것입니다.
잠자기 후에 sudo 비밀번호를 묻는 메시지가 표시되지 않도록 스크립트를 어떻게 다시 작성해야 합니까?
(통화를 시도했지만 sudo sleepin 30
여전히 비밀번호를 묻는 메시지가 표시됩니다. 수면 호출이 충분히 작으면 bash는 비밀번호를 묻는 메시지를 표시하지 않지만 수면 시간이 길어지면 비밀번호를 묻는 메시지가 표시됩니다. )
답변1
sudo 명령에 절전 모드를 추가하세요.
seconds=$(($1 * 60))
sudo sh -c "sleep $seconds; pm-suspend"
답변2
Mat가 제안한 대로 사용자가 비밀번호 없이 pm-suspension을 실행하도록 허용할 수 있습니다.
달리기sudo visudo
다음에 추가youruser ALL=(root) NOPASSWD: /path/to/pm-suspend
답변3
주제에서 벗어남: at 데몬을 사용하지 않으려는 특별한 이유가 있습니까?
echo 'pm-suspend' | sudo at now + 15 minutes
출발점이 될 수도 있습니다.