Repository 32bit  Forum
Repository 64bit  Wiki

Esecuzione script prima/dopo la sospensione del sistema: differenze tra le versioni

Da Slacky.eu.
(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 18: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.

Strumenti personali
Namespace

Varianti