# Vixie-cron

## 5800

Ciao,

non riesco ad eseguire un comando ogni tot tempo con vixie-cron.. Eppure mi sembra d'aver fatto tutto correttamente.. Dove sbaglio?

Il comando che voglio eseguire è setxkbmap it e lo eseguo come utente, l'utente è nel gruppo cron.. Dove devo impostare il comando per farlo eseguire ogni minuto o ogni 10 minuti?

Io ho creato un nuovo crontab e al suo interno ho inserito la riga:

* * * * * 5800 setxkbmap it (Ho provato anche con il path assoluto del comando e con */10 per eseguirlo ogni 10 minuti)

l'ho aggiunto come crontab con "crontab nomefile"

Se digito crontab -l mi esce:

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/home .. installed on ..)

# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)

* * * * * 5800 setxkbmap it

Ho provato a riavviare il demone ma non funziona..  :Sad: 

Ho già provato ad inserire la stringa in /etc/crontab ma non funziona comunque.. E nemmeno inserendo un file in /etc/cron.d/

Come devo fare? in cosa sbaglio?

----------

## Scen

 *5800 wrote:*   

> Come devo fare? in cosa sbaglio?

 

Quel "5800" non capisco a cosa serva, inoltre devi inserire il percorso completo del comando.

Comunque per chiarirti le idee, se non l'hai ancora fatto, ti consiglio di leggerti la guida apposita: http://www.gentoo.org/doc/it/cron-guide.xml

----------

## randomaze

 *5800 wrote:*   

> Il comando che voglio eseguire è setxkbmap it e lo eseguo come utente, l'utente è nel gruppo cron.. 

 

Se non sono indiscreto....

Hai bisogno di impostare periodicamente il layout it oppure c'é qualcosa che mi sfugge?

----------

## 5800

il 5800 è il mio nickname  :Very Happy:  la sintassi prevede che ci sia il nome dell'utente che da il comando o no? Ora non ricordo dove l'ho letto però l'avevo letto ehehe.. Effettivamente guardando gli esempi della pagina che hai linkato - e da cui ho preso spunto per impostare vixie-cron già in precedenza - non risulta mai il nick nel crontab... Provo a toglierlo, vediamo che succede...

Ho già provato ad inserire il percorso completo del comando, come specificato nel primo messaggio..

Si randomaze ho bisogno d'impostare il layout it perchè fa il buffone e non ho voglia di vedere perchè non resta impostato su it..  :Very Happy:  Soluzioni alternative ehehe  :Smile: 

----------

## .:deadhead:.

forse è meglio che per il layout di concentri qui : https://forums.gentoo.org/viewtopic-t-738716.html?sid=ecf51bc3de41d596006da17fe3ceaf9f

----------

## 5800

Ho provato a togliere il nick dal crontab dell'utente ma niente, il comando non viene comunque eseguito.. Nemmeno con il path assoluto del comando... Che fare?

@.:deadhead:. Quella discussione non mi e' utile per riuscir a configurare vixie-cron.. Che e' lo scopo di questa mia discussione..  :Smile: 

----------

## djinnZ

```
#!/bin/bash

setxkbmap it &> /var/log/miocomando
```

 e vedi cosa non gli garba...  :Wink:  e non aggiungo altro perchè indulgo nell'accidia più del solito oggi, sarà il tempo uggioso.

----------

## 5800

L'errore che mi riporta è questo:

```

Cannot open display "default display"

```

----------

## cloc3

 *5800 wrote:*   

> L'errore che mi riporta è questo:
> 
> ```
> 
> Cannot open display "default display"
> ...

 

stai eseguendo il comando come utente root, mentre lo schermo è gestito da un utente semplice?

----------

## randomaze

 *cloc3 wrote:*   

>  *5800 wrote:*   L'errore che mi riporta è questo:
> 
> ```
> 
> Cannot open display "default display"
> ...

 

Mi sa che il problema é nel fatto che il crontab non vede se la sessione X é aperta o meno... dovrebbe impostare la variabile DISPLAY (presumibilmente con valore ':0.0') nello script prima di lanciare xsetkb.

Resta il fatto che a mio modo di vedere non é una soluzione al problema ma un accrocchio.

----------

## 5800

 *cloc3 wrote:*   

>  *5800 wrote:*   L'errore che mi riporta è questo:
> 
> ```
> 
> Cannot open display "default display"
> ...

 

no, stò eseguendo tutto da utente semplice..

 *Quote:*   

> 
> 
> Resta il fatto che a mio modo di vedere non é una soluzione al problema ma un accrocchio.
> 
> 

 

Certo, anche dal mio modo di vedere.. E' solo un palliativo.. Però è nato come "non voglia" di trovare la causa vera e poi come sfida nel fatto che cron non andava e volevo farlo andare...  :Smile: 

Ora forse è presto per dirlo ma sembra funzionare.. Stasera vedo se è ancora tutto ok..

Invece di dare direttamente setxkbmap it nel crontab l'ho messo in uno script e nel crontab eseguo questo script..

----------

## djinnZ

Sono ancora una volta di malumore (sei sfigato in questo) quindi vado sul telegrafico: l'ambiente dei demoni e dell'init è minimale, non è neanche impostanta la locale se è per questo (quindi uno script con un source /etc/profile è il minimo); non puoi avviare una applicazione X da un utente differente o tramite su senza che sia stata compromessa nelle impostazioni la sicurezza di X (xhost + è una cosa imbecille perchè come puoi cambiare la conf della tastiera puoi anche leggere tutto quello che ci viene digitato password incluse) o siano stati adottati particolari accorgimenti (leggere la documentazione a proposito di X da remoto); o imposti la variabile display o usi l'opzione della linea di comando il server X potrebbe essere ovunque e la macchina non può leggerti nel pensiero.

----------

## 5800

Eccoci qua, ho fatto un pò di test prima di postare...  :Smile: 

Ora utilizzo questo script:

```

#!/bin/bash

export DISPLAY=:0.0

setxkbmap it  &> /home/5800/err

```

e poi il crontab dell'utente ovviamente richiama quello script con:

```

*/15 * * * * /home/5800/prova

```

Bene, la tastiera si setta in ita.. con un solo problema:

```

X connection to :0.0 broken (explicit kill or server shutdown).

```

questo viene riportato dentro al file err

E X va in crash, non ad ogni esecuzione del comando ma dopo tot ore.. :S Subito pensavo fosse colpa di un aggiornamento che avevo appena fatto, ma poi downgradando ho notato che crashava comuqneu e disabilitando il crontab non crashava più..

----------

