Impossibile avviare un lavoro con Cron all'avvio di Ubuntu


0

Sto cercando di ottenere un semplice script Python in esecuzione all'avvio con Cron su Ubuntu 16.04. Quello che ho fatto è stato aperto cron con: sudo crontab -e

e ha aggiunto l'ultima riga come mostrato nello screenshot:

inserisci qui la descrizione dell'immagine

Quindi faccio:

sudo reboot

Ma quando Ubuntu si avvia il file Python sembra non essere stato eseguito. Dovrebbe creare un file di testo. Ho testato lo script Python usando il terminale e genera con successo quel file di testo.

Qualcuno sa cosa mi sto perdendo qui?

Modifica : seguendo il commento di AFH, ho aggiornato la riga in crontab a questo:

@reboot sudo /usr/bin/python /home/adi/pythons/python1.py

Tuttavia, ciò non ha cambiato nulla all'avvio.


Sembra praticamente OK, a parte il finale &. Non sono esattamente sicuro dell'effetto di questo: potrebbe sospenderlo al completamento della shell di lancio, quindi prova senza. È anche possibile che PATHnon sia stato impostato, quindi digitare which pythone utilizzare questo percorso completo nella crontabvoce.
AFH,

Sì, e non è necessario ma non farà male.
Gombai Sándor

Risposte:


0

Chiamando sudo crontab -e, si modifica l'elenco cron di root. Quindi non c'è motivo di usare sudo nella voce cron. Certo, è valido ma se lo fai, devi avere una voce nel file sudoers ( visudoè il comando per modificarlo) per l'esecuzione del comando e, dato che non puoi fornire alcuna password per un processo avviato da cron, tu deve anche fornire il tag NOPASSWD.


Grazie per la risposta. Sono nuovo di Linux. Ho appena aperto crontab con crontab -ee aggiunto @reboot python /my_script_path &lì, ma non è stato risolto. Ho anche aperto crontab con sudo e poi @reboot python /my_script_path &ci sono passato , ma sempre la stessa cosa. Potete per favore espandere un po 'di più il vostro ansewr con dettagli come quello che dovrei aggiungere in visudo e dove posso passare NOPASSWD?
multigoodverse,

0

Stai cercando di eseguire lo script come root, quindi puoi semplicemente aggiungerlo a /etc/rc.local, che viene eseguito da root all'avvio.

$sudo -i
#echo "/usr/bin/python /home/adi/pythons/python1.py" >> /etc/rc.local
#exit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.