Debian へようこそ。もはやcronを使用しません。

Debian へようこそ。もはやcronを使用しません。

SE.comでcronjob、crontab、cronのジョブスケジュールを変更する方法についての多くの記事を読んでいます。しかし、私のDebian環境では、セッションクリーンアップタスクは単に「php」と予約され、/etc/cron.dに存在し、rootをユーザーとして指定し、現在30分ごとに実行されるようです。再起動しないとスケジュールを変更できません。

cat /etc/cron.d/php

返品:

9,39 8-20     * * *     root   [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean 2>>/dev/null; fi

/etc/init.d/cron restartにもかかわらず、私が変更した時間/分の変更は考慮されません。本番サーバーにあるため、ホストを簡単に再起動できないか、実験に使用できます。

crondにスケジュールの変更を考慮するようにコマンドを発行できますか?

答え1

Debian へようこそ。もはやcronを使用しません。

M. Kittの言葉は正しいです。 Stack Exchangeは質問ごとに1つの質問を好みますが、この場合、両方の質問は根本的な間違いに由来します。あなたはクローンジョブを実行していると誤って考えています。

以前のクローンジョブの説明で見たように、クローンジョブは自己無効化システムで systemd が実行されているのがわかるからです。

… &&もし[! -d /run/systemd/system ];その後... ;Phi

/etc/cron.d/phpところで、これは非公式ではありません。その設置方法はDebian PHP - 共通パッケージ。実行中のアイテムも同じパッケージにインストールされます。変える対応クローン作業:

今日、ますます多くのDebianパッケージでこのパターンを見つけることができます。 cron ジョブは systemd デバイスに置き換えられ、systemd の実行中にのみそれ自体が無効になります。

したがって、cronテーブルでスケジュールを調整しても効果はありません。 (シェルコマンドの実行時間を変更する以外)何もしなかった予定)。同様に、cronテーブルに環境変数を設定しても効果はありません。タイマー単位でスケジュールを変更し、サービス単位で環境変数を変更する必要があります。

systemctl cat詳細はこの回答の範囲外ですが、システムユニット、ユニットオーバーライドファイル、およびsystemctl statusコマンドを簡単に理解する必要がありますsystemctl edit

追加読書

関連情報