# [RISOLTO] halt in crontab

## funkoolow

salve a tutti,

avendo necessità di impostare lo spegnimento automatico di una macchina ogni due giorni ad una certa ora, ho impostato la riga seguente con crontab -e (da root, ovviamente):

```

00 03 */2 * * halt

15 03 */2 * * date >> /root/test.txt

```

al contrario di quanto succede al file /root/test.txt, al quale ogni due giorni alle 3:15 viene regolarmente aggiunto il record dell'output di date (confermandomi che la sintassi crontab su cui nutrivo qualche dubbio è giusta), il comando halt non viene mai eseguito, lasciando la macchina sempre accesa.

qualcuno mi sa dire dove sbaglio? grazie tutti in anticipo come sempre  :Smile: 

----------

## cloc3

ipotesi da verificare (magari nei log)

halt appartiene al percorso /sbin che non è riconosciuto da chron.

prova a inserire il perrorso completo.

----------

## funkoolow

grazie per la risposta, questo è il mio messages greppato su halt

```
funkserver funkoolow # cat /var/log/messages | grep halt

Jan 21 02:00:01 funkserver cron[13466]: (root) CMD (halt)

Jan 23 02:00:01 funkserver cron[25498]: (root) CMD (halt)

Jan 25 02:00:01 funkserver cron[9789]: (root) CMD (halt)

```

da quanto posso capire, mi pare che il comando venga preso in considerazione (l'ora è diversa perchè ho cambiato il codice subito prima del post precedente)... dove guardo eventuali errori in output del cron (che magari spiegano perchè poi in effetti la macchina non si spegne)? intanto ho impostato il percorso completo come mi hai suggerito, posterò l'esito dopo giovedì, per ora grazie ancora  :Smile: 

----------

## cloc3

magari, se hai fretta di darti una risposta rapida, puoi sostituire al posto del comando date un echo $PATH o un env, in modo da capire come si comporta cron.

inoltre puoi redigere anche l'output di halt verso file, per raccogliere eventuali errori.

----------

## lele_dj

magari dico una bagianata ma potresti provare a farti uno script per spegnere il PC  e al posto di inserire direttamente il comando in cron fai lanciare lo script

----------

## xdarma

Prova a modificare la riga /etc/crontab così:

```

00 03 */2 * * root halt -f

```

----------

## djinnZ

a parte l'opzione alternativa di un banalissimo 

```
sleep `echo \`date -d "2011-01-28 16:00" +%s\`-\`date +%s\` | bc` ; halt
```

e variazioni sul tema, rifletterei su questo  *il solito F****** manuale - man halt wrote:*   

> From  release 2.74 on halt and reboot invoke shutdown...

 , prova a chiamare direttamente shutdown -h now così capisci meglio cosa è successo ma a naso credo che halt non riesca a rilevare del tutto il runlevel e quindi chiami shutdown che a sua volta volta si ferma perchè non trova nessun utonto loggato.

Se lo devi lasciare attivo per web server o solo per scaricare qualcosa penserei ad usar direttamente 

```
shutdown -h `echo \`date -d "2011-01-28 16:00" +%s\`-\`date +%s\` | bc`
```

così previeni anche i login.

----------

## funkoolow

grazie a tutti per i sempre ottimi suggerimenti, sembra che aggiungere il percorso completo sia stato efficace  :Smile: 

proverò a fare qualche altro test con le altre soluzioni, per ora taggo risolto e vi saluto!

----------

## MajinJoko

Stavo facendo la stessa cosa.

Un dubbio. Una volta inserito il crontab con crontab -e, è un comportamento corretto quello che ottengo, cioé che il comando viene eseguito solo se riavvio vixie-cron dopo il salvataggio del nuovo crontab?

----------

## xdarma

 *MajinJoko wrote:*   

> Un dubbio. Una volta inserito il crontab con crontab -e, è un comportamento corretto quello che ottengo, cioé che il comando viene eseguito solo se riavvio vixie-cron dopo il salvataggio del nuovo crontab?

 

Non è corretto, secondo man crontab:

 *Quote:*   

> The -e option is used to edit the current crontab using the editor spec‐
> 
> ified  by  the  VISUAL  or EDITOR environment variables.  After you exit
> 
> from the editor, the modified crontab will be installed automatically.

 

Ma penso che riavviare con /etc/init.d/vixie-cron restart non sia un gran problema.

----------

## MajinJoko

orpo, infatti qualcosa mica torna..

----------

