LoginSignup
3
6

More than 5 years have passed since last update.

いつ突然死してもいいようにPC起動後○日後に自動シャットダウンさせる設定(Windows & Linux)

Posted at

タイトルが物騒ですが、もし自宅で作業中にそんな事になった場合、PCが起動しっぱなしだと開いているアプリケーションとかブラウザの状況とかの生々しい画面を第一発見者や捜査関係者に見られて、趣味嗜好や場合によっては色々と恥ずかしい事にもなりかねません。

というわけで、PC起動時に自動的に時間経過でシャットダウンさせるようにしておくと良いでしょう。

Windowsの場合(XP以降)

こんなショートカットをスタートアップに入れておきます。

C:\Windows\System32\shutdown.exe /s /t 172800

/sはシャットダウンを実行するオプション、/tは○秒後に実行するオプションです。

ちなみに172800は48時間です。ご自分のライフスタイルや環境に合わせて秒を調整してください。

なお、shutdown.exeのパスはWindowsのOSによって異なる場合があります。

自動シャットダウンを中止させたい場合はコマンドプロンプトから

C:\Windows\System32\shutdown.exe /a

を実行すると解除できます。

Linuxの場合

方法は2通りあります。

1. shutdownコマンドで時間指定のオプションを使用する(問題多々あり)

Windowsと同じようにshutdownコマンドで分単位の時間指定することができます。/etc/rc.localに

shutdown -h +2880 &

と指定します。(2880分は48時間です)

$ sudo shutdown -c

でキャンセルできます。

ただし、この方法だと起動時からshutdownが予約されているので、その後手動でshutdownコマンドを実行しても弾かれてしまいます(自動シャットダウンを先にキャンセルする必要があります)。

また、「シャットダウンまであと○分」的なメッセージが定期的に端末に表示されるので正直邪魔です。

なのでLinuxの場合は、以下に挙げる2つ目の方法の方が良いかもしれません。

2. atコマンドでスケジューリングする

atコマンドは初期状態のUbuntuではインストールされていなかったので、

$ sudo apt-get install at

でインストールする必要があります。他のディストリビューションの場合もそれぞれのパッケージシステムからインストールしてください。

atコマンドをインストール後、/etc/rc.localに以下の様に指定します。

echo "shutdown -h now" | at now + 2880 minutes

起動時にスケジューリングされた自動シャットダウンのタスクはatqコマンドで確認できます。

$ sudo atq
1       Fri Aug  2 12:44:00 2013 a root

左端の1がジョブ番号です。

atコマンドで指定したタスクをキャンセルする場合はatrmコマンドを使用します。

上記、atqコマンドで表示されたタスクのジョブ番号を指定して実行します。

$ sudo atrm 1

Macの場合

所有していないので分かりません・・・まあOS XならLinuxと同じ感じでいけるとは思いますが。

情報お待ちしています。

まとめ

HDDの全データも削除するような処理と組み合わせたスクリプトを時間経過で実行するように指定すれば、死後は安泰ですが、何らかの事情でPCを起動させたまま何日か急に家を空ける事になった場合なんかでも実行されてしまうので、自動実行はシャットダウン程度にとどめておいて、HDDのデータは暗号化ファイルシステムとかで保存する方が良いのかな、なんて思います。

追加情報や間違いの指摘などありましたらコメントでお知らせ頂ければ嬉しいです。

3
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6