Voici le script que j'ai fait pour verrouiller et éteindre mon système après 30 minutes.
#!/bin/bash
# Read Password
read -s -p "Password: " password
echo
# shutdown and screensaver Command
echo "$password" | sudo -kS shutdown -h +30 &
gnome-screensaver-command -a &
read -p "Press any key to continue... " -n1 -s
Le problème avec ce script est que parfois il ne s'arrête pas même après 30 minutes.
C'est pourquoi j'ai ajouté un read
à la fin - afin de surveiller l'état de la séquence d'arrêt ainsi qu'une fenêtre de progression. Mais ce script ne montre que l'état de la minute de démarrage.
eg :
Broadcast message from root@eka-PC
(unknown) at 10:31 ...
The system is going down for halt in 30 minutes!
ça ne montre pas la progression de la fermeture.
ÉDITION :
J'ai également trouvé ce bug dans le script ci-dessus, Si un mauvais mot de passe est entré, le système se verrouille sans aucun avertissement. Est-il possible de donner une déclaration conditionnelle dans la commande shutdown. J'ai essayé ceci
SHUTDOWN=$(echo "$password" | sudo -kS shutdown -h +30 &);
if [[ $SHUTDOWN -eq 0]]
then
gnome-screensaver-command -a &
read -p "Press any key to continue... " -n1 -s
fi
Il active seulement l'arrêt mais pas l'économiseur d'écran.
WORKING script
Aucune solution trouvée pour valider l'arrêt (echo "$password" | sudo -kS shutdown -h +30 &)
J'ai donc essayé de contourner ce problème en confirmant le mot de passe deux fois. C'est le script qui fonctionne.
#!/bin/bash
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
echo "Activate screensaver and shutdowns the system in 30 minutes";
# Read Password
shut()
{
read -s -p "Password: " password1
read -s -p "Confirm Password: " password
echo
# Run Command
if [ "$password1" == "$password" ]
then
echo "$password" | sudo -kS shutdown -h +30 &
gnome-screensaver-command -a &
read -p "`echo $'\n> \n>'` ${green} To cancel shutdown, press C ${reset}`echo $'\n> \n>'`" prompt
if [[ $prompt =~ [cC](es)* ]]
then
echo "$password" | sudo -kS shutdown -c
read -p "`echo $'\n> \n>'`${red} Shutdown Cancelled ${reset}" -n1 -s
fi
else
echo -e "\n${red} Wrong Password ${reset}, Re enter the password"
shut
fi
}
shut
Ajout d'un formatage de texte supplémentaire et d'un code d'annulation d'arrêt également au script ci-dessus.
Si vous voulez également activer un lecteur de musique (par exemple Rhytmbox), alors après gnome-screensaver-command -a &
ajoutez ce code rhythmbox-client --play &
Toute suggestion est appréciée