特定のカスタマイズ可能な時間後にシステムを自動的にシャットダウンするにはどうすればよいですか?
ターミナルウィンドウを開き、次を入力します。
Sudo shutdown -h +60
60分を必要な分数に置き換えます。
詳細はこちら:
http://ubuntuforums.org/archive/index.php/t-473173.htmlhttp://www.linux.org/lessons/beginner/l5/lesson5a.html
一定の非アクティブ期間の後にPCをシャットダウンするトピックはこのトピックにリダイレクトされたであるため、ここでこの問題を説明します。
私はこの問題を解決するために多くの時間を費やしたので、他の人にとって同じ問題を簡単にするために、それを共有することは有用だと思います。私はさまざまなプログラムを試しましたが、それらは私のために機能していませんでしたので、短いスクリプトとcronjob最適なソリューション。
最初に私は投稿を参照しました タイムアウトシャットダウン-30分後にシャットダウン
以下にコピーして、それを機能させるための改善点を説明します。
Xprintidleをインストールします。このツールは、ユーザーのアイドル時間を提供します。
Sudo apt-get install xprintidle
スクリプトautoshutdown.shを作成します。このスクリプトは、アイドル時間を確認し、30分間アイドル状態の場合にシャットダウンするようコンピューターに指示します。
idle=$(xprintidle) if [ $idle -gt 1800000 ]; then shutdown -h now fi
このためにcronjobを作成し、システムが長時間アイドル状態になっていないかどうかを確認し、30分以上アイドル状態になっている場合はシャットダウンします。 rootユーザー用にcronjobを作成する必要があることに注意してください。
このスクリプトを機能させるには、次のようないくつかの改善が必要です。
idle=`env DISPLAY=:0 su OUR_USER -c xprintidle 2>&1`
OUR_USER
は、アイドル時間をチェックするために参照するユーザーです(rootユーザーではありません)
DISPLAY=:0
は1つのデスクトップディスプレイに適しています(状況によりenv
コマンドを実行してDISPLAY
を読み取ります)
スクリプトがOUR_USER
によって実行される場合、上記の行を減らすことができます。
idle=`env DISPLAY=:0 xprintidle 2>&1`
このトピックについて説明します http://ubuntuforums.org/showthread.php?t=1069602
スクリプトをOUR_USER
で実行する場合、shutdown
コマンドの前にSudo
を付ける必要があります
Sudo shutdown -h now
私のスクリプトは、cronファイルの行ごとにcronから実行されました。
*/5 * * * * /home/OUR_USER/autoshutdown.sh
スクリプトがルートで実行されない場合、次の行を追加することを忘れないでください:
ALL ALL=(ALL) NOPASSWD: /sbin/shutdown
sudoersファイルであるため、shutdownコマンドを実行するためにパスワードは不要です。
私は2つの同様のディストリビューションでLubuntu 12.04.4 RC LXLE 32-bit( http://www.lxle.net/ )
1つのシステムでは、ファイルに設定されているルートcronjobを使用する場合にのみ機能します。
/ var/spool/cron/crontabs/root
別の問題は、私のシステムのxprintidleが時々ランダムな値を与え、時には論理的に増分することです。最終結果-最大アイドル値を30分に設定すると、システムは通常20分後にシャットダウンされます。犯人はxscreensaverであり、入力されたパラメータで設定されているように動作しないと思います。
使用できます
ComplexShutdown https://launchpad.net/complexshutdown
またはEasyShutdown https://launchpad.net/easyshutdown