Cette question peut sembler étrange, car la plupart des gens veulent savoir comment lancer un programme au démarrage. Je me demandais s'il existe un moyen de faire en sorte qu'OSX lance une application lorsque le bouton de redémarrage est pressé depuis le menu Apple.
Réponses
Trop de publicités?C'est faisable avec un proxy de redémarrage, c'est à dire que vous renommeriez /sbin/reboot
par exemple sudo mv /sbin/reboot /sbin/reboot.ori
et ensuite créer un reboot
lien symbolique vers le /sbin/reboot_proxy
bash script qui contient la ou les commandes que vous souhaitez exécuter avant le reboot et enfin il exécute /sbin/reboot.ori
. J'ai actuellement cette configuration sur mon Mac sous OS X 10.8.5 et elle fonctionne bien. Je piège à la fois reboot
y shutdown
les commandes. C'est ce qui est exécuté quand on clique sur le bouton Apple menu > Redémarrer... et ou Arrêtez... des commandes.
- Note : Il est préférable d'avoir un deuxième bash script pour basculer l'état du fichier original et du proxy bash script car il doit être remis en place avant les mises à jour d'OS X qui toucheront le(s) fichier(s).
Voici le code dans mon shutdown_proxy
bash script qui a un lien symbolique à la fois pour les reboot
y shutdown
Les commandes après l'original ont été renommées avec un .ori
extension. N'hésitez pas à l'adapter pour votre usage.
Contenu de reboot_proxy
#!/bin/bash
_name="$0";
echo "Reboot Proxy Executing..."
# Place command(s) to execute before reboot directly below this comment:
_command="$_name.ori"
echo "Executing $_command $@..."
"$_command" "$@"
Permettez-moi d'ajouter que, du point de vue de la sécurité, certains diront que c'est une mauvaise chose à faire et je dirais que c'est vrai dans une certaine mesure dans les bonnes conditions. Cependant, étant donné que je suis la seule personne qui a touché et touchera jamais mon Mac et que j'ai plusieurs couches de sécurité en plus des fonctions intégrées, je n'ai personnellement aucun problème à utiliser cette méthode.
Puisque le choix du menu Apple > Redémarrage vous déconnecte effectivement, vous pouvez probablement faire quelque chose comme ce qui est suggéré ici : Exécuter script à la déconnexion sans utiliser le crochet de déconnexion .
J'éviterais d'essayer d'éditer ou de modifier tout binaire système, scripts, etc et de m'en tenir à ce qui est disponible dans "l'espace utilisateur". Principalement parce que toute mise à jour du système pourrait écraser les changements que vous avez faits, et si vous avez fait quelque chose qui, si "cassé", pourrait empêcher le démarrage ou la connexion.... Eh bien, cela peut être un mal de tête majeur.
Note : Je n'ai pas encore eu l'occasion de mettre tout cela à l'épreuve, mais il semble qu'il y ait quelques pistes.