理解を助けるために:それとcron
命令とat
の間にどのような関係がありますか?
実際にcron
次のように実行してSUSEでサービスを停止した場合:
/etc/init.d/cron stop
at
上記を実行した後、ジョブでコマンドを実行するとat
?
例:
at -f /u01/script1.sh now
答え1
一般に、正確な呼び出し方法は、at
プラットフォームと実装によって異なります。
ジョブは、すべてのプラットフォーム/構成で定期的なジョブまたは他のスケジューラーによって実行できますat
。cron
たとえば、OS Xでは、ジョブはat
特定の間隔でlaunchd
実行されます/usr/libexec/atrun
。同様に、FreeBSD では/usr/libexec/atrun
cron が数分ごとに実行されます。
私のDebian 7システムでは、atd
cronとは無関係に実行されるサービスを実行しています。それにもかかわらず、これはジョブに保存されます/var/spool/cron/{atjobs,atspool}
。
したがって、/etc/init.d/atd
起動時に開始されるサービスがあります。私はこの使い方がatd
SUSEを含む多くのLinuxシステムで一般的だと思います。この場合とは、at
互いにcron
関連性がなく独立しています。
システムがどのように機能するかを確認できます。 cron サービスを停止し、次のコマンドを実行します。
echo 'touch /tmp/testfile' | at now + 1 minute
1分以内に存在することを確認してください/tmp/testfile
。その場合、at
ジョブは実行中です。
答え2
どちらも別々のデーモンを持っています。デーモンはジョブをcrond
実行し、デーモンはジョブを実行します。cron
atd
at
man at
マニュアルページを使用して読むことができますman crond
。