skay.actoweb.com
mon petit cahier du libre...


accueil > trucs et astuces

Minuterie Shutdown

par skay • le 01/12/2006
J'utilise régulièrement la commande shutdown pour programmer l'heure à laquelle mon ordi s'éteindra, souvent après le visionnage d'un film sur lequel je vais lamentablement m'endormir

Pré-requis


Mon objectif est de créér une mini-application qui ouvrira une fenêtre "zenity" dans lequel on saisira le nombre de minutes dans lequel le PC s'éteindra.
Si zenity n'est pas installé sur votre PC, faites-le maintenant...
$ su -
# yum install zenity


La commande utilisée pour éteindre le PC sera shutdown . Elle s'utilise en super-utilisateur, pour des raisons de sécurité évidentes pour certains, mais pas pour la plupart des utilisateurs finaux, j'entends par là le PC "familial" sur lequel tous les utilisateurs ont le droit d'éteindre le PC. Donc, dans un premier temps, rendre la commande shutdown accessible à tous:
$ su -
# chmod +s /sbin/shutdown


Le script, bash...


Par défaut, le PC s'éteindra dans 105 minutes (1 h 45), variable OPT_STOP
La fonction SetA génère la boite de texte zenity qui récupère la variable OPT_STOP
La fonction shutCpt éteindra le PC dans OPT_STOP minutes

#!/bin/bash
OPT_STOP=105
OPT_TIME=$(date +%s)
/sbin/shutdown -c &

function setA () {
OPT_STOP=`zenity --width="400" --entry --title="Eteindre le PC" --text="Saisir le nombre de minutes avant l'arrêt de l'ordinateur" --entry-text=$OPT_STOP`
}

function shutCpt () {
OPT_FIN=$(date -d "1970-01-01 GMT $(($OPT_TIME+60*$OPT_STOP)) seconds" "+%H:%M le %d / %m / %y" )
/sbin/shutdown -h +$OPT_STOP &
zenity --notification --window-icon="/usr/share/pixmaps/eteindrelepc.png" --text "Minuterie activée. Shutdown programmé à $OPT_FIN."
}

setA

if [ ! $OPT_STOP ] ; then exit
else shutCpt
fi

Copiez le contenu ci-dessous dans votre éditeur de texte.
Vous devez ensuite enregistrer ce fichier dans le dossier de votre choix, mais je vous recommande de le placer dans ~/.local/bin/ pour pouvoir l'exécuter simplement.
Comme nom de fichier, eteindrelepc me semble pas mal

Maintenant, il faut autoriser ce script à s'exécuter.
$ chmod +x ~/.local/bin/eteindrelepc



Résultat


En lançant eteindrelepc vous obtenez ceci:


Vous pouvez bien sûr créér un lanceur de bureau, un raccourci dans le menu Applications Gnome, et si vous cherchez un icone pour aller avec, voici eteindrelepc.png (48x48), à placer dans /usr/share/pixmaps, sinon modifiez le script en fonction...




Commentaires

Graphit le 25/02/2009 @ 15:31
Maintenant sa me dit seulement : 'shutdown: cannot find pid of running shutdown.' ( plus le warning )
et evidemment mon eee s'eteint pas :s
mrSkay le 22/02/2009 @ 04:57
Peut-être URL trop long...
Premier résultat de Google pour la recherche "shutdown: timeout opening/writing control channel /dev/initctl
Shutdown cancelled"... Mais, si dans ce cas ça marche pas... Je suis plus sous Xandros pour l'instant... Bien envie de poser la Debian 5.0 sur le eeePC tiens
Graphit le 21/02/2009 @ 21:45
Je precise que je suis sous Xandros avec un eee 900 et la commande '/sbin/shutdown -fh +$OPT_STOP' ne donne rien ... enfin si mais sa eteint pas l'ordi et le site que tu m'a filé est introuvable ^^'
mrSkay le 21/02/2009 @ 15:53  [http://thenthdoctor.blogspot.com/2007/03/timeout-openingwriting-]
Salut,
l'erreur de zenity c'est parce que il ne trouve pas l'image "dans /usr/share/pixmaps/eteindrelepc.png", ce n'est qu'un Warning...
Pour l'erreur, "shutdown" essayer en modifiant la commande avec -f ( /sbin/shutdown -fh +$OPT_STOP & )
Voir le lien pour plus d'infos...Graphit le 21/02/2009 @ 12:24
Salut,
jvoulais d'abord dire que grace a cette rubrique je comprends comment faire un script ( tu me dira y'a pas plus simple ) mais quand je lance 'eteindre le pc' la ptite fenetre s'affiche mais sa me dit : 'shutdown: timeout opening/writing control channel /dev/initctl
Shutdown cancelled.
** (zenity:7292): WARNING **: Could not load notification icon : /usr/share/pixmaps/eteindrelepc.png'
et mon eee s'eteint pas. Help !


Poster un commentaire
Pseudo: (*)
email:
Site web:
Commentaire: (*)
* obligatoire

Les commentaires sont visualisés avant publication
ˆhaut