[RESOLU]Aide SleepWatcher 2.2 |
Bienvenue invité ( Connexion | Inscription )
[RESOLU]Aide SleepWatcher 2.2 |
28 Feb 2015, 15:15
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Bonjour à tous,
j'essaye de configurer SleepWatcher 2.2 mais je n'arrive pas a se qu'il se lance au démarrage de ma session et donc n'exécute pas mon script voici la procédure que j'ai suivi pour l'installation: Code sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8 Code sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin Code sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8 Code sudo mv ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist Code sudo chown root ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist Code sudo chmod 644 ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist Code sudo launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist j'ai créer un script .wakeup et .sleep dans mon répertoire personnel. Quand j'execute la commande teste suivante tout fonctionne correctement Code /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup mais quand je redémarre mon macbook rien ne se passe, SleepWatcher ne se lance pas... Ce message a été modifié par chiwili - 15 Mar 2015, 10:25. |
|
|
Guest_JacqR_* |
28 Feb 2015, 19:34
Message
#2
|
Guests |
Bonjour,
Le wakeup de SleepWatcher ne fonctionne qu'au réveil de la machine après une mise en veille, pas lors d'un démarrage, redémarrage ou à l'ouverture d'une session. Solution : Utilise un launch agent (fichier plist) dans ton dossier "Maison/Bibliothèque/LaunchAgents/" pour exécuter ton script à l'ouverture de session. Ce message a été modifié par JacqR - 28 Feb 2015, 19:40. |
|
|
28 Feb 2015, 20:07
Message
#3
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Mais c'est exactement se que je veux qu'il exécute mon script a l'entrée de veille, a la sortie... Quand j'ouvre et ferme le capot de mon MacBook Pro en gros.
Edit: je me suis peut être mal exprimer... SleepWatcher fonctionne correctement, quand je tape la commande test cité plus haut les script s'execute a l'ouverture et a la fermeture du capot. Le probleme est que sleepWatcher ne commence pas a tourner a l'ouverture de session donc quand je ferme et ouvre mon capot après être logué le script ne se lance pas. Ce message a été modifié par chiwili - 28 Feb 2015, 22:14. |
|
|
28 Feb 2015, 22:44
Message
#4
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
En faite j'viens de voir dans mon monteur d'activité que SleepWatcher tourne bien mais pour une raison que j'ignore lol les script ne s'execute pas a l'ouverture et fermeture du capot...
Voici mon fichier plist: Code <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>de.bernhard-baehr.sleepwatcher</string> <key>ProgramArguments</key> <array> <string>/usr/local/sbin/sleepwatcher</string> <string>-V</string> <string>-s ~/.sleep</string> <string>-w ~/.wakeup</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> </dict> </plist> |
|
|
Guest_JacqR_* |
1 Mar 2015, 00:10
Message
#5
|
Guests |
Mais c'est exactement se que je veux qu'il exécute mon script a l'entrée de veille, a la sortie... Quand j'ouvre et ferme le capot de mon MacBook Pro en gros. Ok, donc ce n'est pas un redémarrage au complet de la machine. Selon ton premier message, les trois premières commandes sont correctes. Après, cela devrait-être ces commandes sans sudo et sans l'utilisation des commandes chown et chmod. cp ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist; launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist Je ne sais pas si les autres commandes cause votre problème, mais, essaie ceci : Exécute cette commande dans le Terminal Ce message a été modifié par JacqR - 1 Mar 2015, 00:11. |
|
|
1 Mar 2015, 13:54
Message
#6
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Non malheureusement sa ne fonctionne toujours pas...
Quand je rentre la premiere commande que tu m'as proposer j'ai se message d'erreur: Code /Users/Jonathan/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist: Could not find specified service et lors de la 2e commande j'ai le message d'erreur: Code /Users/Jonathan/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist: File exists y a t'il un moyen de nettoyer launchctl hier croyant que sa fonctionnais pas j'ai loader plusieurs fois y a peut être conflit maintenant... Edit: j'ai taper la commande suivante, et je vois bien le service dans la liste mais j'ai beau faire unload il reste toujours là... Code launchctl list Edit2: J'ai réussi a supprimer le service de la liste et supprimer le fichier plist du repertoire LaunchAgents, maintenant la 2e commande fonctionne sans message d'erreur mais les script ne se lance toujours pas a l'ouverture et fermeture du capot, ni meme en via Pomme -> Suspendre l'activité... Pourtant mes script son bien dans /Users/NomUtilisateur/ et s'appelle bien .sleep et .wakeup Ca va finir par me rendre chèvre Ce message a été modifié par chiwili - 1 Mar 2015, 14:31. |
|
|
Guest_JacqR_* |
1 Mar 2015, 14:57
Message
#7
|
Guests |
Bonjour,
La deuxième commande ne fonctionnera pas tant que le fichier plist ne sera pas supprimé. Aucun problème si vous avez loadé plusieurs fois, il n'y aura toujours qu'un seul fichier. La commande launchctl unload ne supprime pas le fichier dans le dossier, mais il désactivera le fichier PList pour que LaunchD ignore ce fichier. Edition : comme tu as trouvé comment supprimé le fichier Plist , j'efface le reste de ce message car cela n'est plus nécessaire Ce message a été modifié par JacqR - 1 Mar 2015, 15:20. |
|
|
Guest_JacqR_* |
1 Mar 2015, 15:17
Message
#8
|
Guests |
Edit2: J'ai réussi a supprimer le service de la liste et supprimer le fichier plist du repertoire LaunchAgents, OK,maintenant la 2e commande fonctionne sans message d'erreur mais les script ne se lance toujours pas a l'ouverture et fermeture du capot, ni meme en via Pomme -> Suspendre l'activité... Pourtant mes script son bien dans /Users/NomUtilisateur/ et s'appelle bien .sleep et .wakeup Il faut s'assurer les fichiers .sleep et .wakeup n'ont pas d'extension et que se sont des fichiers texte (sans format), pas un fichier au format rtf ou créée par Microsoft Word ou autre suite Office Est-ce que ces scripts on les droits d'exécutable ? Si la réponse est non ou que tu ne sais pas, exécute cette commande dans le Terminal
Est-ce que vous avez un texte comme ceci #!/bin/bash dans la première ligne de vos scripts pour indiqué le type du script shell ? Sinon, cela est nécessaire. |
|
|
1 Mar 2015, 15:39
Message
#9
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Oui les script sont bien exécutable et je les ai écrit dans pico sans extension...
D'ailleurs quand je tape la commande: Code /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup Tout fonctionne comme il faut quand j'ouvre et ferme le capot... |
|
|
Guest_JacqR_* |
1 Mar 2015, 15:59
Message
#10
|
Guests |
Oui les script sont bien exécutable et je les ai écrit dans pico sans extension... Ok,D'ailleurs quand je tape la commande: Code /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup Tout fonctionne comme il faut quand j'ouvre et ferme le capot... Je n'ai pas vraiment d'idée pourquoi cela ne fonctionne pas normalement, sauf en utilisant la commande Code /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup Mais, si un script prends trop de temps ou il y a une erreur, cela peut désactiver le fichier plist. Avez-vous regardé les logs dans l'application "Console" pour voir si il n'y a pas des messages concernant le fichier de.bernhard-baehr.sleepwatcher.plist. |
|
|
1 Mar 2015, 23:11
Message
#11
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
J'ai regarder dans la console et après une recherche le seule message que je vois c'est celui ci:
Code Mar 1 23:07:36 MBP-de-Jonathan com.apple.xpc.launchd[1] (de.bernhard-baehr.sleepwatcher): This service is defined to be constantly running and is inherently inefficient. Aucun message a la fermeture ou ouverture du capot... Je désespére |
|
|
Guest_JacqR_* |
2 Mar 2015, 15:23
Message
#12
|
Guests |
Bonjour,
Je désespére Est-ce que vous utilisez des commandes dans vos scripts qui ne sont pas des commandes standard de l'OS ? Si la réponse est oui : Pour les commandes qui ne sont pas standard, utilise le chemin complet de la commande dans vos scripts au lieu du nom de la commande, car l'environnement dans le Terminal peut-être différent que celui par launchD Aussi, essaie avec un script simple comme celui-ci dans le fichier .sleep
Ce message a été modifié par JacqR - 2 Mar 2015, 15:25. |
|
|
2 Mar 2015, 18:20
Message
#13
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Tu es un GENIE avec tes mini script les fichier txt se crée bien sur le bureau...
Par contre je n'ai aucune idée des chemin que je dois mettre pour mon script ci dessous Code #!/bin/bash
var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/R$ if test "$var" = "Home" then mount -t smbfs //Guest:@NAS/Volume_1 Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 Volume_2 mount -t smbfs //Guest:@NAS/P2P P2P else exit fi |
|
|
Guest_JacqR_* |
3 Mar 2015, 15:50
Message
#14
|
Guests |
Bonjopur,
Par contre je n'ai aucune idée des chemin que je dois mettre pour mon script ci dessous Code #!/bin/bash var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/R$ Il n'y a rien à ajouter dans ce script, ce sont des commandes standard. Mais la troisième ligne du script est incomplete, probablement que vous l'avez coupé par erreur. Je crois plutôt que vous devez ajouter un délai pour s'assurer que le réseau WIFI soit complètement en fonction. Commencer par ce script, pour connaitre les résultats lors du wakeup, ils seront dans le fichier "logsDuScript_wakeup.txt" sur votre bureau Code #!/bin/bash ##sleep 1 ## ajuster le nombre de seconde, si nécessaire pour que le réseau WIFI soit complètement en fonction var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/R ligne a compléter) ## important if test "$var" = "Home" then echo "$(date) : var est 'Home'" >> ~/Desktop/logsDuScript_wakeup.txt mount -t smbfs //Guest:@NAS/Volume_1 Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 Volume_2 mount -t smbfs //Guest:@NAS/P2P P2P echo "$(date) : Les volumes smbfs devrait-être montés " >> ~/Desktop/logsDuScript_wakeup.txt else echo "$(date) : var n'est pas 'Home', var est $var" >> ~/Desktop/logsDuScript_wakeup.txt exit 0 fi Si les résultats sont toujours "var n'est pas 'Home'" supprimer les ## avant la commande sleep au début de la deuxième ligne du script. Augmenter le temps de la commande sleep si nécessaire. |
|
|
3 Mar 2015, 21:03
Message
#15
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
J'ai modifié le script .wakeup et j'ai bien le fichier "logsDuScript_wakeup.txt" qui a été créer sur le bureau mais les disque ne son pas monter...
Voici le contenu du fichier "logsDuScript_wakeup.txt": Code Tue Mar 3 20:55:46 CET 2015 : var est 'Home' Tue Mar 3 20:55:46 CET 2015 : Les volumes smbfs devrait-être montés Et voici le script modifié: Code #!/bin/bash ##sleep 1 var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/{print $2}') if test "$var" = "Home" then echo "$(date) : var est 'Home'" >> ~/Desktop/logsDuScript_wakeup.txt mount -t smbfs //Guest:@NAS/Volume_1 Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 Volume_2 mount -t smbfs //Guest:@NAS/P2P P2P echo "$(date) : Les volumes smbfs devrait-être montés " >> ~/Desktop/logsDuScript_wakeup.txt else echo "$(date) : var n'est pas 'Home', var est $var" >> ~/Desktop/logsDuScript_wakeup.txt exit 0 fi J'ai également mis le chemin complet de la commande /sbin/mount mais j'obtient le même résultat, je précise que les 3 commande mount fonctionne correctement exécuté séparément dans Terminal. Vous aviez raison la commande de la 5 ligne étais incomplete j'avais mal copier le script Voici le contenu du fichier "logsDuScript_wakeup.txt" quand je désactive mon wifi: Code Tue Mar 3 21:07:19 CET 2015 : var n'est pas 'Home', var est En tout cas un GRAND MERCI pour votre aide précieuse Ce message a été modifié par chiwili - 3 Mar 2015, 21:36. |
|
|
Guest_JacqR_* |
4 Mar 2015, 00:59
Message
#16
|
Guests |
J'ai modifié le script .wakeup et j'ai bien le fichier "logsDuScript_wakeup.txt" qui a été créer sur le bureau mais les disque ne son pas monter... Voici le contenu du fichier "logsDuScript_wakeup.txt": Code Tue Mar 3 20:55:46 CET 2015 : var est 'Home' Tue Mar 3 20:55:46 CET 2015 : Les volumes smbfs devrait-être montés Ok, Il n'y a pas de différence de temps avant et après les commandes mount, cela devrait prendre quelques secondes pour monter un volume ! Je crois que le problème est que vous n'avez pas les permissions via launchD (en tant qu'utilisateur) pour monter ces volumes, alors que vous les avez via le Terminal. Je ne suis pas assez expert pour vous donner des solutions simples. Mais une solution pas très élégante pourrait-être celui-ci, (aucune idée si cela va fonctionner, mais le script s'exécutera dans le Terminal) : Créer un script shell pour monter les volumes Ce message a été modifié par JacqR - 4 Mar 2015, 01:01. |
|
|
10 Mar 2015, 21:59
Message
#17
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Désolé pour cette absence j'étais malade...
Vous aviez raison comme ça sa fonctionne par contre c'est plutôt gênant la fenêtre terminal qui s'ouvre après l'execution du script... et le script .sleep ci dessous ne s'execute pas bien, les volume se démonte bien mais il reste malgré tout toujours sur le bureau (quand je double clic sur le volume une fenêtre vide s'ouvre et il disparais seulement a se moment là) et du coup sa m'fais une erreur quand var est "home"... Code #!/bin/bash var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/{print $2}') if test "$var" = "Home" then umount /Users/Jonathan/Volume_1 umount /Users/Jonathan/Volume_2 umount /Users/Jonathan/P2P else exit 0 fi Si je voudrais que la version du script ci dessous s'exécuter juste a l'ouverture de ma session comment je devrais procédé? Code #!/bin/bash
##sleep 1 var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/{print $2}') if test "$var" = "Home" then echo "$(date) : var est 'Home'" >> ~/Desktop/logsDuScript_wakeup.txt mount -t smbfs //Guest:@NAS/Volume_1 Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 Volume_2 mount -t smbfs //Guest:@NAS/P2P P2P echo "$(date) : Les volumes smbfs devrait-être montés " >> ~/Desktop/logsDuScript_wakeup.txt else echo "$(date) : var n'est pas 'Home', var est $var" >> ~/Desktop/logsDuScript_wakeup.txt exit 0 fi Ce message a été modifié par chiwili - 10 Mar 2015, 22:01. |
|
|
Guest_JacqR_* |
13 Mar 2015, 16:16
Message
#18
|
Guests |
Bonjour,
Tu es un GENIE avec tes mini script les fichier txt se crée bien sur le bureau... Par contre je n'ai aucune idée des chemin que je dois mettre pour mon script ci dessous Code #!/bin/bash var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/R$ if test "$var" = "Home" then mount -t smbfs //Guest:@NAS/Volume_1 Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 Volume_2 mount -t smbfs //Guest:@NAS/P2P P2P else exit fi Je viens juste de penser a ça , le problème est que le dossier courant dans launchd est le disque de démarrage, alors que c'est votre dossier (utilisateur) dans le Terminal. Donc pour que cela fonctionne sans le Terminal, il faut spécifier le chemin du point de montage comme ceci : Code mount -t smbfs //Guest:@NAS/Volume_1 /Users/Jonathan/Volume_1
mount -t smbfs //Guest:@NAS/Volume_2 /Users/Jonathan/Volume_2 mount -t smbfs //Guest:@NAS/P2P /Users/Jonathan/P2P |
|
|
Guest_JacqR_* |
13 Mar 2015, 16:39
Message
#19
|
Guests |
Bonjour,
Vous aviez raison comme ça sa fonctionne par contre c'est plutôt gênant la fenêtre terminal qui s'ouvre après l'execution du script... Voir mon autre message pour la solution sans le Terminal (peut-être ). et le script .sleep ci dessous ne s'execute pas bien, les volume se démonte bien mais il reste malgré tout toujours sur le bureau (quand je double clic sur le volume une fenêtre vide s'ouvre et il disparais seulement a se moment là) et du coup sa m'fais une erreur quand var est "home"... Code #!/bin/bash var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/{print $2}') if test "$var" = "Home" then umount /Users/Jonathan/Volume_1 umount /Users/Jonathan/Volume_2 umount /Users/Jonathan/P2P else exit 0 fi Là, je n'ai pas vraiment d'idée sur ce problème, peut-être que le Finder est en veille avant que le script s'exécute ! -- Si je voudrais que la version du script ci dessous s'exécuter juste a l'ouverture de ma session comment je devrais procédé? Pour lancer des script à l'ouverture de la session, c'est dans les préférences "Utilisateurs et groupes" des préférences systèmes :Code #!/bin/bash ##sleep 1 var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/{print $2}') if test "$var" = "Home" then echo "$(date) : var est 'Home'" >> ~/Desktop/logsDuScript_wakeup.txt mount -t smbfs //Guest:@NAS/Volume_1 Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 Volume_2 mount -t smbfs //Guest:@NAS/P2P P2P echo "$(date) : Les volumes smbfs devrait-être montés " >> ~/Desktop/logsDuScript_wakeup.txt else echo "$(date) : var n'est pas 'Home', var est $var" >> ~/Desktop/logsDuScript_wakeup.txt exit 0 fi Il suffit d'ajouter votre script (important, le script doit-avoir l'extension ".command" dans le nom du fichier) dans l'onglet "Ouverture" de l'utilisateur actuel, mais ceci ouvre le Terminal Pour ne pas que le Terminal s'ouvre, il suffit de créer une application dans Automator, ajoute l'action "Exécuter un script shell", avec ce script Code var=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/{print $2}') Enregistre-le à l'endroit de votre choix.if test "$var" = "Home" then mount -t smbfs //Guest:@NAS/Volume_1 /Users/Jonathan/Volume_1 mount -t smbfs //Guest:@NAS/Volume_2 /Users/Jonathan/Volume_2 mount -t smbfs //Guest:@NAS/P2P /Users/Jonathan/P2P fi Il suffit d'ajouter l'application (créer par Automator) dans l'onglet "Ouverture" de l'utilisateur actuel |
|
|
14 Mar 2015, 21:20
Message
#20
|
|
Nouveau Membre Groupe : Membres Messages : 39 Inscrit : 30 Dec 2013 Membre no 188 574 |
Salut Merci pour toute ces infomration il y a 2 jour j'ai finalement fais la meme chose que vous m'indiquez dans votre dernière réponse et sa marche bien comme ça...
sauf si je suis en veille quand j'rentre mais bon si c'est le cas je lance le script manuellement |
|
|
Nous sommes le : 20th April 2024 - 04:17 |