Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2017, à 11:16

jmercanton

[Résolu] extinction automatique à une heure précise avec avertissement

Salut le forum,

je recherche un script pour éteindre mon pc Ubuntu 16.04 tous les jours à une heure précise.

J'ai vu donc qu'il y a des possibilités avec crontab -e de faire des commandes .....   mais chez moi je n'y arrive.  j'ai suivi  les explications des tutos et je ne sais pas pourquoi y a rien qui se passe. Bref..   du coup je me suis rendu sur internet pour savoir ce qui à déjà été fait, et au final j'ai trouvé sur un site une méthode qui consiste à créer un nouveau fichier  avec  " sudo nano /etc/cron.d/shutdown " et de mettre dans ce fichier la commande suivante " 00 17 * * *  root /sbin/shutdown -h now ".

Avec cette commande mon pc s’éteint tout seul à 17h00 et c'est super.
Malheureusement si un travail est en cours par exemple à cette heure de fermeture, on n'a pas le temps de le sauvegarder.

Je recherche donc un complément de script qui me permettrai d'avoir une fenêtre qui s'ouvre sur le bureau une ou deux minutes avant la fermeture automatique pour avertir que le pc va s’éteindre.

La " version super " serait d'y intégrer  un décompte de temps ( si possible) et un bouton d'annulation afin de stopper la procédure de fermeture automatique. ( c'est la version luxe du puriste smile )

Mais disons que si j'arrive déjà à avoir une fenêtre qui averti.... ça serait magique !!

Voilà, j'espère avoir été assez clair dans mes explications.

Un grand merci d'avance pour votre aide.
Salutations.

Jean-Michel

Dernière modification par jmercanton (Le 12/04/2017, à 13:28)

Hors ligne

#2 Le 03/04/2017, à 12:07

erresse

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Bonjour,

Apparemment, ce que tu demandes est géré par "shutdown", il faut lui associer un message d'avertissement et donner un délai entre l'affichage de ce message et l'arrêt de la machine.
Il y a aussi une option permettant d'annuler un shutdown en attente, tous tes espoirs sont dont donc comblés, non ?
Il te reste juste à lire soigneusement le "man shutdown" et à faire quelques essais pour obtenir le résultat désiré...
smile

Dernière modification par erresse (Le 03/04/2017, à 12:08)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 03/04/2017, à 12:49

kholo

Re : [Résolu] extinction automatique à une heure précise avec avertissement

salut
+1 pour shutdown
et gshutdown pour un GUI !

NB extinction sans sudo :

systemctl poweroff

Hors ligne

#4 Le 03/04/2017, à 13:25

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Merci pour vos messages

J'ai essayé de faire l'extinction avec gshutdown ...   le problème c'est qu'il faut configurer cette extinction chaque jour ..... ou alors j'ai pas trouvé ou est cachée l'option pour que ça se fasse chaque jour.

Pour " man shutdown " que j'ai parcouru, je n'y comprend pas grand chose car, de un c'est en anglais, et de deux je ne suis pas un pro de la conception de script.  la preuve, le petit bout de script que j'ai intégré a mon ordinateur à été trouvé sur internet.
Du coup je viens voir sur ce forum si il y  une personne pour m'aider à faire les bons choix et à corriger mes erreurs.

merci donc pour l'aide

Hors ligne

#5 Le 03/04/2017, à 14:25

erresse

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Moi j'ai le man en français, je t'en fais profiter...

SHUTDOWN(8)                                               Manuel de l'administrateur système Linux                                              SHUTDOWN(8)

NOM
       shutdown - Arrêter le système

SYNOPSIS
       /sbin/shutdown [-akrhPHfFnc] [-t sec] heure [message-avertissement]

DESCRIPTION
       shutdown arrête le système d'une façon sécurisée. Tous les utilisateurs connectés sont informés que le système va s'arrêter, et login(1) est bloqué.
       Il est possible d'arrêter le système immédiatement ou après un certain délai. En premier lieu, tous les processus sont informés que le  système  est
       en  train  de  s'arrêter  par  le  signal SIGTERM. Cela donne le temps à des programmes comme vi(1) de sauvegarder le fichier en cours d'édition, la
       chance à des programmes de traitement de mails et de News de se terminer proprement, etc. shutdown fait son travail en envoyant un signal au proces‐
       sus init, lui demandant de modifier le niveau d'exécution. Le niveau d'exécution 0 est utilisé pour arrêter le système, le niveau 6 pour le redémar‐
       rer, et le niveau 1 pour le mettre dans un état où des tâches d'administration peuvent être effectuées ; c'est le comportement par défaut si  aucune
       des  options -h et -r n'est donnée à shutdown. Pour voir quelles actions sont entreprises durant l'arrêt ou le redémarrage, voyez les entrées appro‐
       priées pour ces niveaux d'exécution dans le fichier /etc/inittab.

OPTIONS
       -a     Utiliser /etc/shutdown.allow.

       -k     Ne pas réellement s'arrêter ; uniquement envoyer les messages d'avertissement à tout le monde.

       -r     Redémarrer la machine après l'arrêt du système.

       -h     Arrêter la machine après l'arrêt du système.

       -P     L'action de halt est de couper le courant.

       -H     Complément de l'option -h. L'action de halt est d'éteindre la machine ou de passer dans le gestionnaire de démarrage si le système  le  gère.
              Elle doit être utilisée avec l'option -h.

       -f     Ne pas effectuer de fsck lors du redémarrage.

       -F     Forcer l'utilisation de fsck lors du redémarrage.

       -n     [OBSOLÈTE]  Ne  pas  appeler  init(8) pour l'arrêt, mais le faire soi-même. L'utilisation de cette option est découragée, et ses résultats ne
              sont pas toujours ceux espérés.

       -c     Annuler un shutdown en attente (avec « shutdown now », il n'y a plus d'attente). Avec cette option, il n'est évidemment pas possible de  don‐
              ner  de paramètre heure, mais vous pouvez entrer des messages d'explication en paramètres sur la ligne de commandes qui seront envoyés à tous
              les utilisateurs.

       -t sec Indiquer à init(8) d'attendre sec secondes entre le moment de l'émission de l'avertissement et celui du signal de fin (kill)  aux  processus,
              avant d'effectuer un changement de niveau d'exécution.

       heure  Quand effectuer l'arrêt.

       message-avertissement
              Message à envoyer à tous les utilisateurs.

       L'argument  heure peut avoir différents formats. Primo, il peut être dans le format absolu hh:mm, dans lequel hh est l'heure (1 ou 2 chiffres) et mm
       la minute de l'heure (sur deux chiffres). Secundo, il peut être au format +m, dans lequel m est le nombre de minutes à attendre. Le mot now  est  un
       synonyme pour +0.

       Si  shutdown  est  appelé avec un délai, il crée le fichier de mise en garde /run/nologin qui indique à des programmes comme login(1) de refuser les
       nouvelles connexions d'utilisateurs. Ce fichier est créé 5 minutes avant que la séquence d'arrêt ne débute. Shutdown supprime ce fichier s'il a  été
       stoppé  avant  qu'il  ait pu envoyer un signal à init (c'est-à-dire s'il a été annulé ou si quelque chose s'est mal passé). Il le supprime également
       avant d'appeler init pour modifier le niveau d'exécution.

       L'option -f signifie « redémarrage rapide ». Cela crée uniquement un fichier /fastboot qui peut être testé par le système quand il revient à la vie.
       Le  fichier  de  démarrage  rc  peut  tester si ce fichier existe, et décider de ne pas lancer fsck(1) puisque le système a été arrêté d'une manière
       propre. Après cela, le processus de démarrage devrait supprimer /fastboot.

       L'option -F signifie « forcer le fsck ». Cela crée uniquement un fichier /forcefsck qui peut être testé par le système quand il revient à la vie. Le
       fichier  de  démarrage  rc peut tester si ce fichier existe, et décider de lancer fsck(1) avec un drapeau spécial d'« obligation » afin que même les
       systèmes de fichiers correctement démontés soient vérifiés. Après cela, le processus de démarrage devrait supprimer /forcefsck.

       L'option -n empêche shutdown d'appeler init, mais lui fait tuer les processus en cours d'exécution lui-même. shutdown désactive ensuite les  quotas,
       les comptes et la mémoire partagée, et démonte tous les systèmes de fichiers.

CONTRÔLE D'ACCÈS
       shutdown peut être appelé à partir d'init(8) quand les touches magiques Ctrl-Alt-Suppr sont pressées, en créant une entrée appropriée dans /etc/ini‐
       ttab. Cela signifie que tous ceux qui ont un accès physique au clavier de la console peuvent arrêter le système. Pour empêcher cela,  shutdown  peut
       vérifier  si un utilisateur autorisé est connecté sur une des consoles virtuelles. Si shutdown est appelé avec l'argument -a (ajoutez cela à l'invo‐
       cation de shutdown dans /etc/inittab), il vérifie si le fichier /etc/shutdown.allow est présent. Il compare ensuite les  noms  de  connexion  de  ce
       fichier avec la liste des personnes qui sont connectées sur une console virtuelle (à partir de /var/run/utmp). Il ne poursuivra son exécution que si
       l'un des utilisateurs autorisés ou le superutilisateur est connecté. Sinon, il affichera le message :

       shutdown : no authorized users logged in

       (aucun utilisateur autorisé connecté) sur la console (physique) du système. Le format de /etc/shutdown.allow est formé d'un  nom  d'utilisateur  par
       ligne. Les lignes vides et les lignes de commentaires (commençant par un #) sont autorisées. Actuellement, il y a une limite de 32 utilisateurs dans
       ce fichier.

       Notez que si /etc/shutdown.allow n'existe pas, l'argument -a est ignoré.

HALT OU POWEROFF
       L'option -H ne fait que positionner la variable d'environnement INIT_HALT d'init à la valeur HALT et l'option -P la positionne à la valeur POWEROFF.
       Le  script  d'extinction  qui  appelle  halt(8)  à  la fin de la séquence d'arrêt devrait vérifier cette variable et appeler halt(8) avec les bonnes
       options pour que ces options aient un effet. Debian 3.1 (sarge) gère ces options.

FICHIERS
       /fastboot
       /etc/inittab
       /etc/init.d/halt
       /etc/init.d/reboot
       /etc/shutdown.allow

NOTES
       Beaucoup d'utilisateurs oublient de donner le paramètre heure et sont ensuite intrigués par le message d'erreur produit par shutdown.  Le  paramètre
       heure est obligatoire ; dans 90 % des cas, ce sera le mot now.

       Init  ne  peut  capturer CTRL-ALT-SUPPR et exécuter shutdown qu'en mode console. Si le système exécute le système X Window, le serveur X gère toutes
       les frappes au clavier. Certains environnements X11 permettent de capturer CTRL-ALT-SUPPR, mais ce qui est fait exactement  dépend  de  l'environne‐
       ment.

       Shutdown  n'a  pas  été conçu pour être exécuté dans le mode setuid. /etc/shutdown.allow n'est pas utilisé pour vérifier qui exécute shutdown, il ne
       fait QUE vérifier qui est actuellement connecté sur la (une des) console(s).

AUTEUR
       Miquel van Smoorenburg, miquels@cistron.nl

VOIR AUSSI
       fsck(8), init(8), halt(8), poweroff(8), reboot(8)

TRADUCTION
       La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez  signaler
       toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.

                                                                      12 novembre 2003                                                          SHUTDOWN(8)

Je pense qu'il te suffit de compléter et d'adapter la commande "shutdown" que tu passes dans le cron (cf ton message #1) avec le message d'avertissement et le délai, c'est tout, pas besoin d'écrire un script compliqué.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#6 Le 03/04/2017, à 15:46

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

si j’entends bien il suffit de modifier cette commande " 00 17 * * *  root /sbin/shutdown -h now " ?
Ou alors de compléter cette commande par un autre bout de texte du style  " 58 16 * * *  root /sbin/shutdown "Attention l'ordinateur va s'éteindre dans 2 minutes"  " 

Je ne suis pas certain de la syntaxe et encore moins que la formulation soit en adéquation avec les exigences du script

Hors ligne

#7 Le 03/04/2017, à 16:14

erresse

Re : [Résolu] extinction automatique à une heure précise avec avertissement

En fait, si tu lis un peu les options de la commande "shutdown", tu devrais voir que l'utilisation de "cron" pour la soumettre n'est même pas nécessaire, puisque l'heure de l'arrêt est indiquée dans la commande "shutdown", ainsi que le message d'avertissement et le délai avant l'arrêt...
De quoi d'autre as-tu besoin ? Qu'on t'écrive la commande à taper, au lieu de la formuler toi-même ?

sudo shutdown -h -t 600 17:00 "Attention, l'ordinateur s'éteindra dans 10 minutes !"

Le seul problème est, comme toujours pour les commandes d'administration, d'automatiser le lancement qui est subordonné à l'entrée d'un mot de passe.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 03/04/2017, à 17:50

Hizoka

Re : [Résolu] extinction automatique à une heure précise avec avertissement

On peut donner les droits root aux users pour cette commande via visudo...

Je ne trouve pas ça forcement logique de permettre l'extinction via l'interface graphique mais pas en ligne de commande.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#9 Le 04/04/2017, à 09:13

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Salut,
Je ne cherche pas a trouver un code tout prêt à l'emploi car je sais que ce n'est pas comme cela qu'on progresse, mais plutôt à comprendre pourquoi mes codes ne fonctionnent pas.

Du coup je préfère me renseigner avant de rentrer un code qui va, soit ne pas fonctionner ou, soit me dérégler ma configuration. Pour le moment je suis dans la phase des codes qui ne fonctionnent pas smile

Bref,  Merci tout de même pour la ligne de code que j'ai testée.  J'ai rentré ce code tel quel dans le terminal et la réponse du terminal m'annonce que l'extinction sera décalée de 600 minutes sad  J'ai donc été un peu surpris !

j'en ai donc déduit qu'il faillait mettre 10 à la place de 600   ( pourtant selon man shutdown, l'option -t devrait être mentionnée en secondes mais chez moi ça ne fonctionne pas comme ça !!! et je ne sais pas pourquoi)

J'ai refait un test en changeant le 600 par 10  et l'extinction se fait bien après 10 minutes. En revanche, je ne vois apparaitre à aucun moment le message d'avertissement.

De plus si j'ai bien compris, la ligne de code doit être rentrée tous les jours dans le terminal pour que cela fonctionne  ? 
L'objectif final serait de configurer une fois pour toute ma machine avec un code qui prend en charge l’extinction automatique chaque jour.

Je ne sais pas si mes objectifs sont réalistes et réalisables ?

Dernière modification par jmercanton (Le 04/04/2017, à 09:14)

Hors ligne

#10 Le 04/04/2017, à 09:59

lynn

Re : [Résolu] extinction automatique à une heure précise avec avertissement

erresse a écrit :

Le seul problème est, comme toujours pour les commandes d'administration, d'automatiser le lancement qui est subordonné à l'entrée d'un mot de passe.

Il y a aussi cette commande pour pour éteindre en ligne de commande sans être admin; A utiliser de préférence dans un alias... On est pas des sauvages tout de même! tongue

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#11 Le 04/04/2017, à 10:59

erresse

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Certes, il y a plusieurs façons d'éteindre la machine sans être "root", mais le problème, c'est que ces commandes ne comportent pas les paramètres de "shutdown" pour régler l'heure de l'arrêt, le délai et envoyer un message d'avertissement par la même occasion...
C'est pourquoi cette commande est plus particulièrement intéressante, mais (et c'est tout à fait normal) elle doit être émise par l'administrateur de la machine. N'oublions pas que les systèmes Unix et dérivés ont été conçus à la base pour gérer des serveurs centralisés avec des utilisateurs multiples connectés par terminaux ou stations de travail.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#12 Le 04/04/2017, à 11:01

kholo

Re : [Résolu] extinction automatique à une heure précise avec avertissement

+1 pour lynn
le voilà le raccourcis :

systemctl poweroff

wink
on nous a tellement gonflé avec ce truc autant l'utiliser !

Hors ligne

#13 Le 04/04/2017, à 11:15

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Bon pour l'extinction c'est ok
ça fonctionne avec ma commande 

 00 17 * * *  root /sbin/shutdown -h now 

Par ailleurs j'ai trouvé un petit moyen de faire afficher un texte avec le terminal mais pas avec une commande de cron  et là encore, un mystère qui dépasse mes modestes compétences.

j'ai cré un fichier popup.sh dans lequel j'ai intégré le code suivant 

#!/bin/bash 
notify-send "extinction Automatique" "L'ordinateur va s'éteindre à 17h00
il faut sauvegarder le travail en cours."

Lorsque je rentre la commande sh /home/ctp-bachet/popup.sh dans le terminal c'est ok. le texte s'affiche
Lorsque je fais cette même commande dans le gestionnaire des tâches, ça ne fonctionne pas  et je ne sais pas pourquoi ?

Hors ligne

#14 Le 04/04/2017, à 11:31

MicP

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Hors ligne

#15 Le 04/04/2017, à 15:09

kholo

Re : [Résolu] extinction automatique à une heure précise avec avertissement

en script :
ce script permet d'arrêter une machine avec inter-action
par défaut il arrête le système après 15 secondes (cf defautTemps)
en cas d'annulation, il ouvrira une fenêtre 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 10 secondes (cf pasToutDeSuite)

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
pour l'activer
dans la fonction Eteindre
commentez la ligne zenity et adaptez votre choix pour l'extinction entre dbus et systemctl

NB2 : Pour avoir ce script à une heure précise, on peut lancer ce script avec cron sans droits étendus !

#!/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

Hors ligne

#16 Le 04/04/2017, à 15:53

Compte supprimé

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Bonjour,
Pour obtenir ce genre de résultat, on peut aussi utiliser une fonction du couteau suisse systemd.

Le script "jeferme.sh" , ou celui de Kholo, ou un autre :

#!/bin/bash
notify-send "Il est xxh,  je ferme dans 5 mn."
notify-send "shutdown -c dans un terminal stoppera le processus"
shutdown -P +5
exit 0

Pour le lancer sans sudo, il faut créer un fichier .service et un .timer dans ~/.config/systemd/user
jeferme.timer

[Unit]
Description=Fermer la machine

[Timer]
OnCalendar=*-*-* xx:00:00
Persistent=false

[Install]
WantedBy=default.target

jeferme.service

[Unit]
Description=On ferme la machine
 
[Service]
Environment=DISPLAY=:0
ExecStart=/home/ton_compte/jeferme.sh

EDIT : Pour activer le timer :

systemctl --user enable jeferme.timer

Et pour recharger après des tests sur diverses valeurs :

systemctl --user daemon-reload 

Dernière modification par Compte supprimé (Le 08/04/2017, à 10:13)

#17 Le 04/04/2017, à 16:36

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Merci Kholo

J'ai créé un fichier fermeture.sh dans mon dossier personnel
J'ai copié le code dans ce dossier
j'ai essayé de lancer par le terminal avec la commande
ctp-bachet@sdm-bachet:~$ sh /home/ctp-bachet/fermeture.sh
lancement fermeture.sh...
/home/ctp-bachet/fermeture.sh: 13: /home/ctp-bachet/fermeture.sh: Syntax error: "(" unexpected

le terminal me renvoie une erreur

Dernière modification par jmercanton (Le 04/04/2017, à 16:37)

Hors ligne

#18 Le 04/04/2017, à 16:49

kholo

Re : [Résolu] extinction automatique à une heure précise avec avertissement

normal, tu lances le script avec sh

./fermeture.sh

ou

bash fermeture.sh

Hors ligne

#19 Le 05/04/2017, à 10:11

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Merci Kholo,

C'est magnifique, j'ai pu faire fonctionner le script depuis le terminal.
mille mercissss !!
J'ai du changer les droits avec chmod +x /home/ctp-bachet/fermeture.sh car lorsque je demande une annulation et un report de l'extinction, j'avais un message d'erreur qui m'indiquait que les droits n'étaient pas reconnus.

Donc maintenant ça fonctionne dans le terminal.

J'ai essayé avec l'application des tâches planifiées de programmer une extinction et ça ne fonctionne pas.
le fichier crontab contient cette commande         40 07 * * * ./fermeture.sh
j'ai essayé de programmé la mise en route du script à 7h40  ce matin et la tâche ne s'est pas activée.
As tu une idée ?

Hors ligne

#20 Le 05/04/2017, à 10:33

kholo

Re : [Résolu] extinction automatique à une heure précise avec avertissement

oui

./fermeture 

considère que tu es dans le dossier où se trouve le script
tu dois mettre le chemin complet jusqu'à l'application
donc

/home/ctp-bachet/fermeture.sh

si il se trouve toujours là
... et pas de point pour appeler le script
soit

40 07 * * * /home/ctp-bachet/fermeture.sh

Hors ligne

#21 Le 05/04/2017, à 13:25

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Merci encore pour ton aide.

je viens de tester avec ce code    22 13 * * * /home/ctp-bachet/fermeture.sh   

à 13h22 le script ne s'est toujours pas lancé   !!  sad

Je pense avoir fait comme tu me l'a prescris !

Hors ligne

#22 Le 05/04/2017, à 16:03

Compte supprimé

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Si tu utilises crontab, il faut aussi tenir compte de cela :
https://doc.ubuntu-fr.org/cron#lancement_graphique

Chez moi le script s'exécute bien à partir d'une entrée dans crontab avec DISPLAY=:0
Mais autant s'habituer à utiliser systemd.

Dernière modification par Compte supprimé (Le 05/04/2017, à 16:27)

#23 Le 05/04/2017, à 16:58

kholo

Re : [Résolu] extinction automatique à une heure précise avec avertissement

ok,  Tamarou,... je ne connais que mal cron
donc, appliqué pour jmercanton cela donne :

40 07 * * * DISPLAY=:0 /home/ctp-bachet/fermeture.sh

(en adaptant l'heure bien sûr)

PS @Tamarou ; bien vue ton explication de systemd
scripté, cela donne :

echo "[Unit]
Description=Fermer la machine

[Timer]
OnCalendar=*-*-* 07:40:00
Persistent=false

[Install]
WantedBy=default.target
" | tee "/home/ctp-bachet/.config/systemd/user/jeferme.timer"

il faut adapter

OnCalendar=*-*-* 07:40:00

ici tous les jours à 07h40
puis

echo "[Unit]
Description=On ferme la machine
 
[Service]
Environment=DISPLAY=:0
ExecStart=/home/ctp-bachet/fermeture.sh
" | tee "/home/ctp-bachet/.config/systemd/user/jeferme.service"

enfin, pour recharger

systemctl --user daemon-reload 

Dernière modification par kholo (Le 05/04/2017, à 20:29)

Hors ligne

#24 Le 05/04/2017, à 19:15

Compte supprimé

Re : [Résolu] extinction automatique à une heure précise avec avertissement

#25 Le 06/04/2017, à 07:36

jmercanton

Re : [Résolu] extinction automatique à une heure précise avec avertissement

Salut à tous,
Je suis émerveillé par vos compétences et je ne peux que dire bravo et merci pour l'aide.

j'ai testé ce matin de faire fonctionner cette tâche à 7h10 avec la commande   10 07 * * * DISPLAY=:0 /home/ctp-bachet/fermeture.sh

Grande satisfaction lorsque je vois apparaître sur l'écran le message d'avertissement qui m'indique que la procédure de fermeture à démarrer.

Donc c'est super !!   tout fonctionne et je suis très content d'avoir pu finaliser ma demande par un solution encore plus performante que celle que j'avais imaginé.

Un très grand merci à Kholo pour le code qui est une pure merveille et aussi tous les autres pour leur aide.

Hors ligne