ubuntu/LinuxMintでcronを利用したshutdown処理
記事の更新日:2026/09/30 評価を加筆 1.概要 ubuntu環境で長時間稼働する環境を構築したのですが、処理の起動と処理の終了を組み込む必要がありました。処理の起動はrc.localを作成して、電源オンをすることで処理の起動を組み込むことができました。処理の終了は時間指定による終了が良いと考えて、cronを組み込むことにしました。 しかし、ubuntu desktop環境を自動でshutdownするために、crontabを作成したのですがうまく行きません。root権限の設定をどのようにすると良いかがわかりませんでした。色々と試してみて実現をすることができたので、その内容と対処方法に関して記述します。 私の評価は以下の通りです。 (1) cronをroot権限で実行した経験がなかったので、はじめての経験でした (2) shtudown処理を利用者権限に設定すると、MTA導入というエラーで悩みました (3) ネットで調べても良い答えがなく、root権限の問題と気が付きました (4) sudo crontab -eの実行に気がつくまでに、少し時間が必要でした 2.詳細 普通にubuntuにloginした状態でcrontab利用し、時間指定でshutdownを動かしてみます。 $ crontab -e 設定内容は以下の通りで、利用者権限でshutdownを利用できるので、15:00にshutdownを実行して停止しそうです。 0 15 * * * shutdown -h now しかし、shutdownは実行されません。/var/log/syslogを参照すると下記ログが記録されています。 (username) CMD (shutdown -h now) (CRON) info (No MTA installed, discarding output) 参考資料を参照するとMTAを導入との記述ですが、違うような気がしました。 そこで、権限不足が理由ではないかと考えて、sudoでcrontabを作成しました。 $ sudo crontab -e 設定内容は1時間変更して、16:00にshutdown実行です。 0 16 * * * shutdown -h now これで想定通りに動作します。 3.所見 crontab内にsudoを記述することを最初に考えたのですが、...