version démilitarisée (l'extinction est commentée dans la fonction éteindre)
#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}" # vous pouvez commenter cette ligne
echo "lancement $nomlogiciel..." # vous pouvez commenter cette ligne
VERSION="0.001"
by="kholo 2017"
# NOTES DE VERSIONS
#
# ----------------------------------------------
pasToutDeSuite=6 # temps par defaut avant de reposer la question
defautTemps=7 # sans confirmation exécution dans x secondes
leTemps=(0 60 120 180 240 300) # liste de choix dans Entry
maForm=0
FONCTION="ce script permet d'arrêter une machine avec inter-action
par défaut il arrête le système après $defautTemps secondes
en cas d'annulation, il ouvrira une fenetre pour choisir le temps avant de se relancer
on peut taper off pour arrêter ce script ou un temps en secondes
en cas d'échappement le script sera relancé automatiquement au bout de $pasToutDeSuite secondes
NB : vous pouvez tester ce script sans modification
cette version est sécurisée en ne faisant qu'afficher une boite de dialogue au lieu d'arrêter réellement le PC
"
# #attention ces functions peuvent éteindre l'ordinateur
function Eteindre_avec_Dbus () {
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
}
function Eteindre_avec_Systemctl () {
# #A partir de 16.04 avec Systemctl (peut être 15.10 voire 15.04)
# avec Systemctl
systemctl poweroff
}
function Eteindre () {
# Pour activer ce script commenter zenity et choisir une façon d'éteindre
zenity --info --text="Eteindre"
# Adapter en fonction du système
# Eteindre_avec_Dbus &
# Eteindre_avec_Systemctl &
# sleep 1 # pour laisser le temps au script
exit 0
}
function form () {
zenity --entry --title "Extinction dans $defautTemps secondes" \
--text "Temps en secondes avant extinction \noff pour arrêter ce script" \
--entry-text "${leTemps[@]}"
#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
echo -1
exit 0
fi
}
for (( i=0 ; i<=$defautTemps ; i++ )); do
pourcent=$(( i * 100 / $defautTemps ))
echo "$pourcent"
sleep 1
shift
# echanger ces lignes pour la version finale
done | zenity --progress --text="$FONCTION" --percentage=0 --auto-close
if [ "$?" -eq 1 ]; then
maForm="$(form)"
fi
case $maForm in
-1 ) sleep $pasToutDeSuite # temps par defaut avant de reposer la question
./"$0" # se relance lui même
exit 0
;;
off ) exit 0 ;; # quitter ce script
0 ) Eteindre ;;
* ) sleep $maForm
./"$0" # se relance lui même
;;
esac
exit 0