Ubuntu+PerlでWebシステム開発 環境構築

  • Ubuntu20
  • Ubuntu18
  • Ubuntu16

cronの起動・停止・再起動・状態確認, cronの実行ログ

cronの起動・停止・再起動・状態確認について解説します。

cronはジョブの定期自動実行を行うサーバーです。

cronの状態確認

cronの状態確認は、systemctlコマンドの「status」を使って行います。

sudo systemctl status cron
起動している場合

起動している場合は、以下のように表示されます。

● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-05-12 11:51:51 JST; 1 weeks 0 days ago
     Docs: man:cron(8)
 Main PID: 1349 (cron)
    Tasks: 1 (limit: 9479)
   CGroup: /system.slice/cron.service
           mq1349 /usr/sbin/cron -f

May 20 07:17:01 development-batch CRON[88341]: pam_unix(cron:session): session closed for user root
May 20 08:17:01 development-batch CRON[92378]: pam_unix(cron:session): session opened for user root by (uid=0)
May 20 08:17:01 development-batch CRON[92379]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May 20 08:17:01 development-batch CRON[92378]: pam_unix(cron:session): session closed for user root
May 20 09:17:01 development-batch CRON[96646]: pam_unix(cron:session): session opened for user root by (uid=0)
May 20 09:17:01 development-batch CRON[96647]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May 20 09:17:01 development-batch CRON[96646]: pam_unix(cron:session): session closed for user root
May 20 10:17:01 development-batch CRON[100899]: pam_unix(cron:session): session opened for user root by (uid=0)
May 20 10:17:01 development-batch CRON[100900]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May 20 10:17:01 development-batch CRON[100899]: pam_unix(cron:session): session closed for user root
停止している場合

停止している場合は、以下のように表示されます。

● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2020-05-20 11:04:56 JST; 1min 22s ago
     Docs: man:cron(8)
  Process: 1349 ExecStart=/usr/sbin/cron -f $EXTRA_OPTS (code=killed, signal=TERM)
 Main PID: 1349 (code=killed, signal=TERM)

May 20 08:17:01 development-batch CRON[92379]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May 20 08:17:01 development-batch CRON[92378]: pam_unix(cron:session): session closed for user root
May 20 09:17:01 development-batch CRON[96646]: pam_unix(cron:session): session opened for user root by (uid=0)
May 20 09:17:01 development-batch CRON[96647]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May 20 09:17:01 development-batch CRON[96646]: pam_unix(cron:session): session closed for user root
May 20 10:17:01 development-batch CRON[100899]: pam_unix(cron:session): session opened for user root by (uid=0)
May 20 10:17:01 development-batch CRON[100900]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May 20 10:17:01 development-batch CRON[100899]: pam_unix(cron:session): session closed for user root
May 20 11:04:56 development-batch systemd[1]: Stopping Regular background program processing daemon...
May 20 11:04:56 development-batch systemd[1]: Stopped Regular background program processing daemon.

cronの起動

cronの起動は、systemctlコマンドの「start」を使って行います。sudoコマンドを使って、root権限で実行します。

sudo systemctl start cron

起動が成功しても、成功したというメッセージは返ってきません。状態確認を行ってください。

cronの停止

cronの停止は、systemctlコマンドの「stop」を使って行います。sudoコマンドを使って、root権限で実行します。

sudo systemctl stop cron

停止が成功しても、成功したというメッセージは何も返ってきません。状態確認を行ってください。

cronの再起動

cronの再起動は、systemctlコマンドの「restart」を使って行います。sudoコマンドを使って、root権限で実行します。

sudo systemctl restart cron

restartは単に、stopコマンドを実行して、startコマンドを実行します。HTTPクライアントからの処理を切断してしまうので、通常はreloadコマンドを使用しましょう

再起動が成功しても、成功したというメッセージは返ってきません。状態確認を行ってください。

cronの実行ログを見るには

cronなどのサーバーは、systemdというプログラムによって集中的に管理されています。

systemdのログにcronの起動・停止ログが出力されています。

systemdのログを見るにはjournalctlコマンドを使います。「-u」オプションでユニット「cron」を指定します。sudoで実行しないとcronのログが見れないので注意してください。ログの最後の部分だけ見たい場合は「-r」オプションを組み合わせます。

sudo journalctl -r -u cron

ログのサンプルです。

Jul 23 14:40:03 shinshina-development-app-00000001 CRON[35501]: pam_unix(cron:session): session closed for user myapp
Jul 23 14:40:01 shinshina-development-app-00000001 CRON[35502]: (myapp) CMD ($HOME/$SDIR/customer/osasoi_many_view_bukken.pl)
Jul 23 14:40:01 shinshina-development-app-00000001 CRON[35501]: pam_unix(cron:session): session opened for user myapp by (uid=0)
Jul 23 14:39:01 shinshina-development-app-00000001 CRON[35409]: pam_unix(cron:session): session closed for user root
Jul 23 14:39:01 shinshina-development-app-00000001 CRON[35410]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Jul 23 14:39:01 shinshina-development-app-00000001 CRON[35409]: pam_unix(cron:session): session opened for user root by (uid=0)
Jul 23 14:35:37 shinshina-development-app-00000001 CRON[35332]: pam_unix(cron:session): session closed for user myapp
Jul 23 14:35:05 shinshina-development-app-00000001 CRON[35331]: pam_unix(cron:session): session closed for user myapp
Jul 23 14:35:05 shinshina-development-app-00000001 CRON[35330]: pam_unix(cron:session): session closed for user myapp
Jul 23 14:35:01 shinshina-development-app-00000001 CRON[35329]: pam_unix(cron:session): session closed for user root
Jul 23 14:35:01 shinshina-development-app-00000001 CRON[35336]: (myapp) CMD ($HOME/$SDIR/customer/oshirase_osusume_bukken.pl)

自動実行されたジョブを確認できます。

cronの設定ファイル

cronの設定ファイルについては、別の記事で解説します。