10 November 2007

shutdownとsu

linuxで指定時間後に自動的にシャットダウンする方法がないかと思っていたら、まんまshutdownというコマンドがありました。

使いそうなオプションは

  • -h :システムを停止
  • -r :リブート

時間の渡しかたは、"now"で今すぐ。"xx:xx"で時刻指定。"n"でn分後に停止。

あと基本的にrootじゃないと実行権限がない。

1時間後にシステム停止なら

#shutdown -h +60

かな。

ただ最初、一般ユーザーからsuでルートになって、このコマンドを実行しようとしたら、

bash: shutdown: command not found

と言うメッセージが出て実行できず、フルパスでコマンドを指定すると動くので、なんでかなと思っていたら、原因はオプションなしのsuでルートにログインすると、環境変数がコマンド実行前のユーザーのものが引き継がれるので、パスが通っていなかったという理由でした。なるほど。

suコマンドに、"-"(または"-l"、”-login")オプションを指定すると、ルートに設定されている環境変数等を使います。


というわけで、実行例はこんな感じ。

$ su -
Password:
# shutdown -h +30