Ho creato uno script che aggiungerà un cron job basato sulle specifiche dellutente ma non funzionerà poiché devo aggiornare cron ogni volta Aggiungo un lavoro in crontab. Cè un modo per aggiornare cron senza interrompere il processo?

Answer

Finché il tuo lo script utilizza crontab per aggiungere ed eliminare le specifiche del lavoro per lutente, non sarebbe necessario riavviare il demone cron.

La pagina di manuale di AIX 7.1 cron riporta :

Quando apporti modifiche ai file crontab utilizzando il comando crontab, viene inviato un messaggio che indica la modifica al demone cron.

Consulta anche il il crontab manuale .

Il flusso generale di azioni che il tuo script eseguirà prendere:

  1. Ottieni il crontab dellutente in un file di testo usando crontab -l >crontab.txt.
  2. Manipola il file di testo aggiungendo, rimuovendo o modificando le specifiche del lavoro.
  3. Carica il crontab dellutente con le nuove specifiche usando crontab crontab.txt.

I comandi nel primo e nellultimo passaggio devono essere eseguiti come utente (il primo passaggio potrebbe anche essere eseguito come crontab -l username >crontab.txt come ad es root).

Funzionerebbe su qualsiasi Unix utilizzando cron.

Commenti

  • E se ci sono lavori esistenti? Devo prima metterlo nello stesso file di testo e poi aggiungere il nuovo lavoro prima di caricarlo nel crontab?
  • @Shan Come ho detto, dovresti ottenere il crontab corrente per lutente, quindi modificarlo prima di caricarlo di nuovo. Quindi sì, aggiungeresti nuovi lavori al file prodotto da crontab -l.

Risposta

AIX 7.1 pagina di manuale di cron :

Il Il demone cron legge il file di configurazione quando è attivato e quando riceve il segnale di blocco.

Quindi kill -HUP cron_pid dovrebbe farlo.

Commenti

  • Lho già provato ma vorrei aggiornare la mia configurazione senza interrompere il processo
  • @Shan Il comando kill invia segnali al processo. In generale, i processi possono essere uccisi, cioè muoiono effettivamente, ricevendo un segnale. Ma in caso di processo cron gestisce il segnale, non muore e rilegge la sua configurazione.
  • La parte della pagina man che hai citato è riferendosi a cron ' s file di configurazione , /etc/cronlog.conf, non ai file crontab stessi.
  • Non posso trasformare questo in una risposta per questa domanda; quando modifico manualmente un file crontab e cron HUP, il nuovo cron job non viene eseguito.
  • @JeffSchaller è corretto, devi uccidere -9 cron_pid o usare crontab su un file crontab come suggerito da Kusalananda nellaltra risposta per ricaricare il crontab.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *