1 votes

Comment supprimer le délai de 10 minutes pour un arrêt programmé ?

Lorsque je configure un Mac utilisé comme écran public (rappel : il s'allume et s'éteint automatiquement pendant les heures de bureau) pour qu'il s'éteigne à une heure précise (via Energy Saver), MacOS effectue un compte à rebours de 60 secondes puis ajoute un compte à rebours supplémentaire de 10 minutes.

Que puis-je changer dans MacOS pour qu'il n'y ait pas de compte à rebours pour un arrêt programmé ?

J'ai trouvé sur le Net des articles détaillant des commandes pour Terminal mais ils ne gèrent pas le décompte 60 secondes/10 minutes.

Quelqu'un m'a dit : "Utilisez cet AppleScript

osascript -e 'tell application "System Events" to shut down' 

et cela fonctionnera.

Voilà le problème. Je colle la ligne de code qu'il m'a donnée dans l'Éditeur AppleScript, puis je l'enregistre comme une application AppleScript (le faire dans Automator et créer ainsi une application revient au même). Ensuite, je vais dans le calendrier d'Apple, je crée un événement quotidien répétitif et j'associe une action pour ouvrir cette application.

Maintenant, voici le piège : Si je double-clique sur l'application, le Mac s'éteint immédiatement. Bien. Mais ce n'est pas ce dont j'ai besoin. Si l'événement est déclenché dans le calendrier, à chaque fois que l'application est ouverte, il indique que c'est la première fois que cette application est exécutée et s'il est possible de l'ouvrir. Malgré le fait que je clique sur OUVERTURE (ou OUI je ne me souviens plus), cet avertissement apparaît chaque fois que l'application est lancée. Il semble que le processus d'arrêt se déroule si rapidement que MacOS n'a pas le temps de l'inscrire dans le registre des apps autorisées.

La question est donc : comment lancer cette ligne de code -sans acheter le PowerManager à 50$- à un moment précis ? Parce que lorsque cette ligne de code n'est pas exécutée à partir d'un AppleScript ou d'une application Automator, elle fonctionne (sans avertissement concernant l'application).

Gracias.

4voto

Douglas Points 10417

Vous n'avez pas besoin d'applications payantes pour le faire, car c'est très simple à utiliser. Bash (le shell par défaut dans Terminal).

Vous pouvez faire arrêter l'ordinateur en lançant la commande dans Terminal

$ sudo shutdown -h now

Si vous l'essayez, il éteindra votre Mac immédiatement.

Ce que fait chaque partie

  • sudo = exécuter en tant qu'utilisateur racine
  • shutdown = la commande pour arrêter le système
  • -h = arrête le système
  • now = immédiatement

Donc, si vous voulez éteindre l'ordinateur dans 5 minutes, votre commande sera la suivante :

$ sudo shutdown -h +5

Vous pouvez même programmer un redémarrage ( -r au lieu de -h ) à une heure précise (11h00 tous les soirs)

$ sudo shutdown -r -h 23:00

Bien que cette commande, à elle seule, puisse faire ce que vous voulez, elle est limitée par les éléments suivants sudo vous devrez entrer votre mot de passe lors de son exécution. Cela signifie que vous devrez être sur place sur chaque machine chaque fois que vous voudrez lancer la commande (tous les jours), donc nous avons besoin de quelque chose qui lancera la commande en tant que root donc ce sera automatique.

Ecrire un script en Bash

Le script pour cela est assez simple ; c'est une seule ligne qui appelle la commande shutdown :

#!/bin/bash

/sbin/shutdown -h now

Appelez-le auto_shutdown.sh et l'enregistrer à un endroit pratique. Rendez-le exécutable en lançant la commande :

$ sudo chmod +x auto_shutdown.sh

Cela activera le bit d'exécution et permettra au système de le traiter comme un programme. Maintenant vous avez votre script, vous avez juste besoin de quelque chose pour exécuter ce script à un moment prédéterminé.

Utilisation de Launchd pour planifier votre travail

launchd est le cadre de gestion des services qui démarre/arrête/redémarre les processus, les services, les démons, etc. Pour configurer un travail qui démarre avec launchd vous avez besoin de deux éléments :

  • type de travail à exécuter ; exécuté en tant qu'utilisateur pour un utilisateur, en tant qu'utilisateur pour tous les utilisateurs, ou un travail exécuté par le système en tant que root . Nous voulons le dernier.
  • plist (fichier XML) qui décrit le travail. Les éléments clés sur lesquels vous devez vous concentrer pour l'instant sont les suivants ProgramArguments qui appelle le script et le CalendarInterval qui spécifie quand les travaux doivent être exécutés. Pour cet exemple, appelez votre plist user.com.autoShutdown.plist (aucune autre raison pour cette convention de dénomination, sinon qu'elle suit les conventions d'Apple).

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.user.autoShutdown</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Path_to_Script/auto_shutdown.sh</string>
        </array>
        <key>StartCalendarInterval</key>
        <array>
        <dict>
            <key>Hour</key>
            <integer>21</integer>
            <key>Minute</key>
            <integer>30</integer>
        </dict>
    
    </dict>

Ce plist est configuré pour exécuter le auto_shutdown.sh script tous les jours à 23h30.

Comme nous voulons l'exécuter en tant que Root, copiez le plist dans le répertoire /Library/LaunchDaemons répertoire.

$ sudo cp com.user.autoShutdown.plist /Library/LaunchDaemons

Enfin, chargez le travail dans launchd :

$ sudo launchctl load com.user.autoShutdown.plist

C'est ça. Tous les jours à 11h30, le système s'arrêtera automatiquement.

Répliquez sur toutes vos machines

Copier à la fois le script et le plist sur chaque machine et charger le travail dans launchd . Vous venez de définir l'heure d'arrêt pour toutes les machines et cela n'a pas nécessité d'utilitaires tiers ($$$).


Vous pouvez trouver des informations sur toutes les commandes listées ici en consultant leur page de manuel. Tapez man <command> pour la commande qui vous intéresse.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X