Esecuzione script prima/dopo la sospensione del sistema: differenze tra le versioni
(Nuova pagina: Category:Configurazione Autore: whites11 La seguente guida è basata su slackware current del 14/06/2009 ed è un libero adattamento e riassunto della pagina http://wiki.archlinux....) |
(→Scopo) |
||
| Riga 4: | Riga 4: | ||
== Scopo == |
== Scopo == |
||
| − | Semplice guida per impostare la propria Slack affinchè esegua degli script definiti da noi appena prima o subito dopo aver eseguito la procedura si sospensione o ibernazione. |
+ | Semplice guida per impostare la propria Slack affinchè esegua degli script definiti da noi appena prima o subito dopo aver eseguito la procedura di sospensione o ibernazione. |
==Spiegazione== |
==Spiegazione== |
||
Versione attuale delle 19:25, 14 giu 2009
Autore: whites11 La seguente guida è basata su slackware current del 14/06/2009 ed è un libero adattamento e riassunto della pagina http://wiki.archlinux.org/index.php/Pm-utils
Indice |
[modifica] Scopo
Semplice guida per impostare la propria Slack affinchè esegua degli script definiti da noi appena prima o subito dopo aver eseguito la procedura di sospensione o ibernazione.
[modifica] Spiegazione
Per realizzare quanto sperato, utilizzeremo il pacchetto pm-utils, normalmente disponibile in un'installazione di slackware. pm-utils è il nuovo framework per la configurazione della sospensione e del ripristino del sistema. E' stato progettato per sostituire i vecchi script di sospensione e quelli forniti dal pacchetto powersave. E' solitamente utilizzato da HAL per eseguire i numerosi hacks necessari per aggirare i bugs dei driver che non sono stati scritti pensando alla possibilità di sospensione
[modifica] Realizzazione
Senza scendere in ulteriori dettagli, che peraltro non conosco, vi spiego la semplice procedura che ho seguito per eseguire degli script custom. In /etc/pm ci sono 3 cartelle:
$ ls -l /etc/pm/ total 12 drwxr-xr-x 2 root root 4096 2009-06-10 01:32 config.d/ drwxr-xr-x 2 root root 4096 2009-06-10 01:32 power.d/ drwxr-xr-x 2 root root 4096 2009-06-14 11:54 sleep.d/
Dentro ognuna di queste cartelle è possibile inserire dei file di testo conententi le opzioni di configurazioni desiderate oppure gli script che ci occorrono per completare correttamente la sospensione o il ripristino del sistema.
[modifica] Esempio script
Dentro la cartella sleep.d è possibile creare degli script da eseguirsi al momento della sospensione o del ripristino. Lo schema generale di tali script è il seguente (tratto da http://wiki.archlinux.org/index.php/Pm-utils):
#!/bin/bash
case $1 in
hibernate)
echo "Hey guy, we are going to suspend to disk!"
;;
suspend)
echo "Oh, this time we're doing a suspend to RAM. Cool!"
;;
thaw)
echo "oh, suspend to disk is over, we are resuming..."
;;
resume)
echo "hey, the suspend to RAM seems to be over..."
;;
*) echo "somebody is calling me totally wrong."
;;
esac
Come è evidente, il primo parametro passato allo script dal sistema di gestione della sospensione serve per determinare l'azione che sta per essere (oppure è appensa stata) intrapresa. Ad esempio, il seguente script è quello che io utilizzo per riavviare il servizio bluetooth al momento del ripristino del sistema dalla sospensione in ram:
#!/bin/bash
case $1 in
resume) #ripristino da suspend to ram
/etc/rc.d/rc.bluetooth stop
/etc/rc.d/rc.bluetooth start
;;
esac
NB gli script vengono eseguiti come utente root, quindi ponete attenzione al codice che utilizzate in quanto potenzialmente dannoso.
Ovviamente è possibile inserire un numero arbitrario di script all'interno di altrettanti file in questa cartella. L'ordine di esecuzione degli script è alfabetico (in ordine crescente in caso di resume, decrescente in caso di suspend), pertanto è comune convenzione utilizzare dei nomi che iniziano con 2 cifre numeriche, per rendere esplicito l'ordine di esecuzione.
[modifica] Esempio file di configurazione
Non ho provato direttamente questo utilizzo del sistema, invito qualcuno che l'ha fatto a completare questa parte.