Sto cercando di aggiungere un semplice cron job da eseguire nel mio container Docker. Voglio che venga aggiunto durante la configurazione in modo che venga eseguito automaticamente al completamento di ./launcher rebuild app.
Sento che dovrebbe esserci un modo piĂą semplice che mi sfugge. Dovere modificare il file anacron dopo la configurazione sembra essere la strada sbagliata da percorrere.
Grazie per avermi risposto! Forse questo chiarirĂ meglio la situazione:
Sto eseguendo un repository Discourse ospitato privatamente con alcuni file personalizzati.
Ho un file nella directory script di Discourse chiamato email_me.py.
Quando eseguito, questo file mi invia un’email con scritto “Hello World!”.
Voglio creare un job cron nel container Docker di Discourse che esegua questo file ogni minuto.
Questo può essere ottenuto aggiungendo manualmente la riga * * * * * root python3 /var/www/discourse/script/email_me.py al file /etc/cron.d/anacron utilizzando un editor come vim.
Voglio che il job cron sopra descritto venga eseguito quando il container Discourse viene configurato, ma non posso usare vim per farlo dal file app.yml.
Ho provato a usare echo -n '* * * * * root python3 /var/www/discourse/script/email_me.py' >> /etc/cron.d/anacron come comando nel file app.yml. Questo aggiunge correttamente la riga al file anacron, ma il job NON viene eseguito (come se la modifica non fosse stata registrata).
Sto semplicemente cercando un modo per far sì che il job: * * * * * root python3 /var/www/discourse/script/email_me.py
venga eseguito dopo un rebuild con ./launcher rebuild app.
Dovresti davvero seguire il consiglio di @eviltrout e farlo correttamente in un plugin utilizzando i nostri lavori pianificati di Sidekiq.
Ma se vuoi giocare con queste modifiche non supportate a cron, probabilmente dovrai riavviare il servizio dopo aver aggiunto un lavoro con sv restart cron.
Per essere più chiari, sono curioso di conoscere il tuo obiettivo finale, non i passaggi che stai utilizzando per raggiungerlo. Se l’obiettivo è ricevere un’email ogni minuto, puoi farlo in un job Sidekiq all’interno di un plugin ed è significativamente più semplice.
Ho già degli script in grado di fare entrambe le cose, ma devo solo trovare un modo per far sì che il container di Discourse li esegua una volta a settimana.
Non sono familiare con Sidekiq. Se può gestire questo compito, dove posso cercare per impararlo?
Grazie!
(Ho anche provato sv restart cron e molti altri metodi per riavviare cron, ma senza successo)
Sì, ha funzionato perfettamente. Ho dovuto creare la cartella rr e i file cron.d.rr. Ho inserito il mio lavoro pianificato nel file cron.d.rr e il comando cp ha funzionato.
Grazie!
Ora mi dedicherò a scrivere un plugin adeguato…