# [RISOLTO] script da eseguire alla chiusura del pc (o di kde)

## lsegalla

Ho bisogno di eseguire uno script alla chiusura del PC e così mi son messo a fare una ricerchina in internet

Qui ho trovato uno scriptino semplice che poteva servirmi di esempio http://www.openlinux.eu/content/view/56/36/

Mi consigliate anche voi questo metodo o c'è qualche altra strada che ritenete migliore ?Last edited by lsegalla on Thu Sep 18, 2008 2:58 pm; edited 2 times in total

----------

## Onip

se accodi il tuo comando a /etc/conf.d/local.stop verrà eseguito allo spegnimento del pc.

----------

## djinnZ

http://www.openlinux.eu/content/view/56/36/  :Shocked:  avviare un'operazione del genere in arresto ... mi autocensuro. Mi sa che il furbone lo conosco pure...  :Twisted Evil: 

Dunque: se usi local.stop devi tener presente che ti potrebbe servire un source /etc/env.d (dipende dallo script, ovviamente, altrimenti già PATH ha un contenuto estremamente limitato nell'environment di rc), altrimenti devi crearti un tuo initscript, se hai in mente qualcosa del tipo ssh pincopallino -C "shutdown -h now" ti conviene legarlo all'arresto della rete locale IMHO piuttosto che farlo eseguire sempre e comunque.

Come sempre dipende da qual che hai in mente di fare.

----------

## lsegalla

 *djinnZ wrote:*   

> http://www.openlinux.eu/content/view/56/36/  avviare un'operazione del genere in arresto ... mi autocensuro. Mi sa che il furbone lo conosco pure...  

 

ecco che per una volta ho fatto bene a chiedere, sempre meglio non fidarsi di tutto quel che si trova in rete      :Wink: 

 *djinnZ wrote:*   

> http://www.openlinux.eu/content/view/56/36/Come sempre dipende da qual che hai in mente di fare.

 

Immaginavo: dunque io devo backuppare un paio di files via ftp, lo scriptino me lo son già fatto e funziona

----------

## lucapost

Ricordati inoltre di aggiungere l'initscript  ad esempio al runlevel di default:

```
#> eselect rc add local default
```

----------

## djinnZ

Sei sfortunato, il mese scorso ti avrei passato il mio rc per il backup (e siamo alla ottava volta che lo devo riscrivere, sempre per lo stesso motivo, se una cosa nasce maledetta tale resta).

In ogni caso l'idea di fare backup allo shutdown non è che mi entusiasma. Per me è un'operazione che dovrebbe avere tenpi praticamente certi.

Metti che manca la corrente, rischi di esaurire l'autonomia dell'ups e non completare lo shutdown nel tentativo di raggiungere un computer che è già spento o che si sta spegnendo (quindi senza poter sapere se il backup è andato a buon fine).

Simili cose sono abituato a metterle all'avvio e non all'arresto.

Facciamo un esempio:

```
depend() {

        use dns

        need net.eth0

}

```

ti evita di tentare una connessione ftp se la rete locale non è connessa ("net" invece segue quanto configurato in rc.conf o conf.d/rc, mi domando sempre perchè fare due file distinti... mah) e poi metti le istruzioni in start stop e reload secondo il caso.

Personalmente, se proprio è necessario fare l'upload ftp all'arresto (del genere trasmettere i log e l'uptime della macchina prestata per navigare al server al termine della sessione per calcolare l'importo da pagare, in un internet cafè, ad esempio), aggiungerei almeno un semaforo per verificare che non sia stato già sincronizzato ed una condizione per saltare la copia se il computer va a batteria o se lo shutdown è stato invocato con un certo comando etc.; nello start invece una verifica che allo shutdown precedente la copia sia andata a buon fine ci vorrebbe altrettanto.

Ti tipeto che negli script rc la locale non è configurata, path ed ldpath sono minimali, non è una buona cosa invocare roba in /usr se possono essere usati in modalità monoutente (eredità sysv) etc.

----------

## lsegalla

Hai perfettamente ragione sui tempi certi per il backup, ma questo piu' che essere un vero e proprio backup è un upload di un file che se resta sincronizzato su piu' macchine è meglio per me (questa è la macchina che comanda comunque, quindi sovrascrive facendo comunque una copia prima di iniziare), poi se salta una copia non è un dramma, me lo posso permettere; pero' io finisco di scrivere quel file quando smetto di usare il pc (e quindi probabilmente lo spengo), quindi diciamo che per la mia esigenza va bene così; poi se salta non è una cosa proprio di vitale importanza.

Poi hai fatto molte considerazioni giuste anche se son tutte cose bypassabili, tranne una forse: "negli script rc la locale non è configurata, path ed ldpath sono minimali, non è una buona cosa invocare roba in /usr se possono essere usati in modalità monoutente (eredità sysv) etc."

Che sia possibile legare la cosa all'uscita dal KDE ? Cioè nel momento in cui do' il "Spegni Computer" dal KDE (dubito ma chiedo)

PS - il codice che hai riportato non l'ho capito anche se me lo hai spiegato, sono ancora un po' indietro con la programmazione degli scriptini e anche le cose piu' banali potrei non capirle, ma vorrei saperne di piu'. Pero' non ti chiedo di rispiegarmi... se riesci a darmi qualche link che con calma comincio a guardarmi e studiacchiarmi qualcosa da solo che ci tengo (e non vi perder tempo con le domande piu' banali)

----------

## djinnZ

Il codice che ti ho riportato è quello degli initscript di gentoo.

Ci sono quattro funzioni: depend() specifica quali altri servizi devono essere avviati per eseguire start() e reload() o prima di quali servizi deve essere eseguita stop() allo spegnimento, tramite need, use, before e after; decisamente semplice ed intuitivo.

Per kde dovrebbe esserci uno script da modificare per eseguire operazioni proprio al logout da qualche parte (ora non mi viene a mente) oppure potresti semplicemente avviare da root il control panel e nella sezione per personalizzare kdm c'è anche l'opzone per scegliere il comando di shutdown, sostituiscilo con il tuo script affidandogli l'incombenza di arrestare la macchina terminato l'upload; in questo caso lo shutdown manuale rimane immutato, mi pare un ottimo compromesso.

Per l'ambiente ti consiglierei di fare una prova con un set > file tanto per verificare che non ci siano path mancanti o meglio non usare i path ma solo i percorsi assoluti (o andare a cercare i singoli comandi, pratica comune).

Per farti un esempio avevo uno script in local.start/local.stop che faceva pronunziare alla macchina un messaggio di avviso, senza il source /etc/env.d festival non era configurato per l'italiano e dovevo inserire manulmente i path per diverse cose.

----------

## lsegalla

 *Quote:*   

> Ci sono quattro funzioni: depend() specifica quali altri servizi devono essere avviati per eseguire start() e reload() o prima di quali servizi deve essere eseguita stop() allo spegnimento, tramite need, use, before e after; decisamente semplice ed intuitivo. 

 

Grazie, ci ho messo un po' ma ora è tutto bello chiaro e ho capito meglio anche la guida, ottimo!

 *Quote:*   

> Per kde dovrebbe esserci uno script da modificare per eseguire operazioni proprio al logout da qualche parte (ora non mi viene a mente) 

 

Ci son riuscito... dunque:

- basta creare la directory ~/.kde/shutdown/

- piazzarci dentro lo scriptino eseguibile, e tutto funziona!

Grazie a tutti, mi sono serviti i post di tutti per capire gli initscript    :Very Happy: 

----------

## lsegalla

Ora con il nuovo aggiornamento di foxmarks non funziona piu' niente

Il problema è questo e sul MAC l'ho risolto in pochissimi secondi

http://wiki.foxmarks.com/wiki/Foxmarks:_Error:_Could_not_set_cookie

Su Gentoo niente da fare...!

(uso firefox 2)

-- EDIT --

Io l'ho risolto in due modi

1. in un primo tempo ho effettuato il downgrade alla versione 2.1.x

2. poi ho fatto l'upgrade a firefox 3 in gentoo (occorre smascherare un po' di pacchetti) e quindi foxmarks 2.5.x funziona perfettamente

----------

## lsegalla

Qualcuno di voi sa per caso se c'è qualcosa di simile anche per sincronizzare le rubriche di thunderbird ?

Io ho cercato ma non ho trovato niente.....

----------

