
私は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
出発点になることもできます。