Como o Mat sugeriu, você pode permitir que o usuário execute o pm-suspend sem uma senha.
Executar sudo visudo
Adicione youruser ALL=(root) NOPASSWD: /path/to/pm-suspend
Eu estou tentando escrever uma função bash simples que dorme X-number of mins e, em seguida, executa um comando de suspensão do sistema (para mim é sudo pm-suspend
desde que eu estou no Ubuntu) agora a função é assim:
function sleepin {
sleep $(bc <<< $1*60); sudo pm-suspend
}
O primeiro argumento é depois de quantos minutos o sono deve acontecer. O problema é que depois do sono o script me pede a senha do sudo.
(Eu tentei chamar sudo sleepin 30
, mas ele ainda me pede a senha. Note que se a chamada do sono for pequena o suficiente, o bash não solicita a senha, mas por um longo período de tempo ela irá ...)
Indo em uma tangente: existe alguma razão em particular para você não querer usar o daemon?
echo 'pm-suspend' | sudo at now + 15 minutes
pode ser um ponto de partida.
Coloque o sono dentro do comando sudo.
seconds=$(($1 * 60))
sudo sh -c "sleep $seconds; pm-suspend"