Domanda

Sto cercando di scrivere un frontend web per Crontab in Ruby utilizzando l'eccellente gemma CronEdit. Sono andato con il codice sorgente crontab di Dillon Cron e ha scoperto che aggiorna un determinato file in modo che il demone cron aggiornare l'elenco durante la scansione successiva.

In man crontab per VixieCron, si dice:

    Inoltre, cron controlla ogni minuto per vedere se modtime della sua directory di spool     (O il modtime in / etc / crontab) è cambiato, e se ha, cron sarà poi     esaminare la modtime su tutti crontabs e ricaricare quelle che sono cambiate.     Così cron non deve essere riavviato ogni volta che un file crontab viene modificato. Nota che     crontab di comando (1) aggiorna il modtime della directory di spool ogni volta che     cambia un crontab.

C'è qualche piattaforma (Ubuntu, Red Hat, ArchLinux, Mac OS X) modo indipendente per garantire che dopo la modifica manualmente il file Cron, il demone lo aggiorna a colpo sicuro?

È stato utile?

Soluzione 3

La ringrazio molto gnibbler e Aaron. Ho appena passato attraverso il codice sorgente per entrambe le gemme 'cronedit' 'ogni volta' e per Ruby. Entrambi di loro fa un 'crontab -' che sostituisce il file cron esistente con le voci cron aggiornati. Ciò significa che contrariamente alla mia domanda iniziale, queste librerie fanno uso dello strumento crontab standard che a sua volta avrebbe fatto qualunque specifiche necessarie per aggiornare il demone.

Penso che il miglior indipendente dalla piattaforma, e cron (Dillon, vixie, mcron etc.) modo agnostico per aggiornare il demone è di usare sempre l'utility crontab associato. Anche quando si modifica a livello di codice, l'utente-programma deve passare il nuovo file cron per l'utility crontab che fare tutto il necessario per quella specifica piattaforma / cron.

@ Marco, grazie per i commenti. Comunque, sto cercando di fornire una semplice interfaccia web che l'utente può personalizzare attraverso il www, proprio come modificare direttamente il file crontab.

Grazie così tanto per le vostre risposte!

Altri suggerimenti

No, non c'è. Se sai che è VixieCron, quindi aggiornare il timestamp della directory. In caso contrario, si potrebbe essere in grado di fingere:. Impostare la variabile ENV EDITOR prima di richiamare crontab -e (che dovrebbe portare a un editor per il crontab)

L'idea è quella di impostare l'editor di qualche programma che rende il cambiamento. crontab -e attenderà l'editor di interrompere e rileggere il file e dire cron che qualcosa è cambiato.

Se si dispone di una vecchia versione di cron, però, è comunque necessario riavviarlo. Ma dubito che si possono trovare queste antiche versioni su tutto ciò che gira Linux o Mac OS X.

Sane distribuzioni Linux moderne hanno directory /etc/cron.d/ dove si può mettere la voce crontab come file separato. Se non ricordo male il nuovo cronfile viene letto entro 2 minuti di essere scritto

Se questo è così importante, perché non utilizzare una leva diversa? In altre parole, ci sono due opzioni:

crontab. 1: / fare / some / molto / specifica / cosa con parametri specifici che ho bisogno di cambiare etc

crontab 2: / fare / cosa / bisogni / a / BE / fatto

In # 2, il lavoro è responsabile per la determinazione in fase di esecuzione che cosa deve essere fatto e farlo. Con questo progetto, l'idea di dover capire come funziona crontab a qualche livello dettagliato è irrilevante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top