ホームページ  >  記事  >  運用・保守  >  crontab が有効にならない問題を docker が解決する方法

crontab が有効にならない問題を docker が解決する方法

WBOY
WBOYオリジナル
2022-08-16 18:18:367809ブラウズ

解決策: 1. コンテナ内の「/etc/init.d/crond status」が実行状態であるかどうかを確認します; 2. 「/etc/pam.d/crond」ファイルを変更し、 "required" "Change to "sufficient"; 3. "/etc/init.d/crond restart" を使用して crond サービスを再起動します。

crontab が有効にならない問題を docker が解決する方法

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

crontab が有効にならない問題を docker が解決する方法

docker では centos イメージがデフォルトで使用され、イメージには crond がインストールされません。yum でインストールが成功すると、crontab はインストールされます。発効しません。

1. まず、コンテナ内の /etc/init.d/crond ステータスが実行状態であるかどうかを確認します。

最初の手順で解決できない場合は、次の方法を参照してください:

2. /etc/pam.d/crond ファイルを変更し、必要な部分から十分な部分まで変更してから、 restart crond サービス: /etc/init.d/crond restart

crontab が有効にならない問題を docker が解決する方法

注: この問題は、centos7 の基本イメージには存在していないようです。

知識を広げる

最も早い解決策

1. ホスト マシンで

       1 3  * * * root  cd /data/wwwroot/xxx && docker-compose exec app php think xxx >> /var/log/crontab_xxx.log

docker-compose exec app php think xxx has been unownedly completed

2. 次に、crontab をコンテナにインストールしますが、実行は依然として失敗します。重要なのは、関連するログがないことです。 crontabも起動していることを確認してください。 /etc/init.d/cron status

3. rsyslog をインストール、apt-get install rsyslog、service rsyslog start

View /var/log/syslog

Dec 25 09:07:07 1a8e4fd5c766 crontab[15120]: (root) BEGIN EDIT (root)
Dec 25 09:07:34 1a8e4fd5c766 crontab[15120]: (root) REPLACE (root)
Dec 25 09:07:34 1a8e4fd5c766 crontab[15120]: (root) END EDIT (root)
Dec 25 09:08:01 1a8e4fd5c766 cron[15100]: (root) RELOAD (crontabs/root)
Dec 25 09:08:01 1a8e4fd5c766 CRON[15133]: Cannot make/remove an entry for the sp

4 /etc/pam.d/cron

セッションをコメントアウトして必要な pam_loginuid.so

5. cron を再起動して正常に実行します

また、この行を変更します。 dockerfile

RUN sed -i '/session    required   pam_loginuid.so/c\#session    required   pam_loginuid.so' /etc/pam.d/crond

crontab の実行にも落とし穴があります。環境変数が読み込まれ、PHP が絶対パスを記述する必要があるため、手動でスクリプトを実行しても問題ありません。

 /usr/local/bin/php think xxx

推奨調査: "docker ビデオ チュートリアル>>

以上がcrontab が有効にならない問題を docker が解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。