黄舟2017-04-17 16:33:40
スクリプトに「ロック ファイルを削除し、新しいロック ファイルを作成する」というステートメントを追加することで、上記の問題を解決しました。ロックファイルが新しくなるたびに crontab がトリガーされることがわかりました。
画像からわかるように、現在時刻が 499 であることが検出されると、nginxchen.sh というスクリプトがトリガーされます。このスクリプトの実行時間は約 8 分です。
ringa_lee2017-04-17 16:33:40
正直に言うと、あなたの具体的な理由がわかりません。文を借りれば、実践が真実をテストする唯一の基準であるため、投稿者のシナリオをシミュレートしました。
1. 2 分以上実行するスクリプトを作成し、
を実行します。
2. crontab に入れます
*/1 * * * * flock -xn /root/xx.lock -c 'sh /root/xx.sh >>/tmp/xx.log 2> &1 '
3. crontab の実行内容を表示します
元の投稿者が指摘した問題は存在しないことがわかります
そこで、次の提案を行います。
1. 短いスクリプトを作成し、サーバーでテストして、状況が同じかどうかを確認します。
2. /mnt/499.log ログ。異常な出力はありません
3. プロセスが実行中であるか、停止しているために crontab がロックを取得できていないか確認します。
投稿者自身が理由を見つけたら、忘れずに投稿してください