atd ジョブがスケジュールされた時間に実行されない

atd ジョブがスケジュールされた時間に実行されない

atdOracleLinux 7サーバーでワンタイムジョブをスケジュールしました。ただし、システムクロックが所定の時間を超えた後もキューに残ります。

# atq
2       Mon Mar 14 00:00:00 2022 a root
# date
Mon Mar 14 09:38:15 NZDT 2022

サービスatdが実行中です。

# systemctl status atd -l
● atd.service - After the Deadline Spell Check Service
   Loaded: loaded (/etc/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-02-08 11:16:33 NZDT; 1 months 3 days ago
  Process: 1259 ExecStart=/opt/atd/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 1270 (sh)
   CGroup: /system.slice/atd.service
           ├─1270 /bin/sh ./run.sh
           └─1283 java -server -Datd.lowmem=true -Dsleep.pattern_cache_size=8192 -Dbind.interface=127.0.0.1 -Dserver.port=1049 -Xmx3840M -XX:ParallelGCThreads=8 -XX:+AggressiveHeap -XX:+UseParallelGC -Dsleep.classpath=./lib:./service/code -Dsleep.debug=24 -classpath ./lib/* httpd.Moconti atdconfig.sl

ジョブは組み込みコマンドを使用して一部のファイルを変更し、他のサーバーで正常に実行されます。

また、コマンドがフリーズしていることを確認しましたが、実行中のプロセスが見つかりませんでした。だから、atdまだ作業が始まっていないと結論付けることができます!

以下に/var/spool/cron/rootファイルがありますa0000201a2e594。このスレッドに基づいて:https://stackoverflow.com/questions/4304631/rescheduling-an-at-job最後の8桁を人間が読める時間に変換してタイムスタンプを取得できます。だからhttps://www.epochconverter.com/私の時間帯に、2022年3月13日20:51:41にジョブが実行されることを教えてください。私は時間の私の定義と一致しませんが、確かにスケジュールを超えています。

このボックスではなぜこれを行うことはできませんか?

ベストアンサー1

奇妙なことはatdサービスコール/opt/atd/startup.shスクリプトを見つけました。

手動で実行しましたが、/usr/sbin/atd待機中のジョブが処理されたことを確認しました。

また、デーモンが実行中であることを/var/run/atd.pid証明するために存在しなければならないことも発見しました。atd

したがって、この問題は、誰かがsystemctlサービスを修正し、サービスがatd実行されているかのように「最も」発生します。

おすすめ記事