ユーザーの仕様に基づいてcronジョブを追加するスクリプトを作成しましたが、毎回cronを更新する必要があるため機能しません。 crontabにジョブを追加します。プロセスを強制終了せずにcronを更新する方法はありますか?
回答
スクリプトはcrontab
を使用してユーザーのジョブ仕様を追加および削除します。cron
デーモンを再起動する必要はありません。
AIX 7.1 cronマニュアルページにはと記載されています:
変更を加える場合
crontab
コマンドを使用してcrontabファイルに送信すると、変更を示すメッセージがcronデーモンに送信されます。
crontab
マニュアルも参照してください。
スクリプトが実行するアクションの一般的なフローテイク:
- <を使用してユーザーのcrontabをテキストファイルに取得しますdiv id = "4ff2606c6f">
。
crontab crontab.txt
。最初と最後のステップのコマンドは、ユーザーとして実行する必要があります(最初のステップは
as egルート)。
これは、cron
を使用するすべてのUnixで機能します。
コメント
回答
AIX 7.1 cronのマニュアルページにはと書かれています:
cronデーモンは、アクティブ化されたとき、およびハングアップ信号を受信したときに構成ファイルを読み取ります。
つまり、kill -HUP cron_pid
実行する必要があります。
コメント
- これはすでに試しましたが、プロセスを強制終了せずに構成を更新したいと思います
- @Shan
kill
コマンドはプロセスにシグナルを送信します。一般に、プロセスは、シグナルを受信することによって強制終了できます。つまり、実際に停止します。ただし、cron
プロセスの場合、シグナルを処理し、停止せず、構成を再読み取りします。 - 引用したmanページの部分は次のとおりです。 crontabファイル自体ではなく、cron 'の構成ファイル、
/etc/cronlog.conf
を参照します。 - これをこの質問の回答にすることはできません。 crontabファイルとHUPcronを手動で編集すると、新しいcronジョブが実行されません。
- @JeffSchallerは正しいので、-9 cron_pidを強制終了するか、Kusalanandaの提案に従ってcrontabファイルでcrontabを使用する必要があります。 crontabをリロードする他の回答で。
crontab -l
によって生成されたファイルに新しいジョブを追加します。