web-dev-qa-db-fra.com

Planification d'une commande de terminal ou d'un fichier de script pour une exécution quotidienne à une heure spécifique Mac OS X

Je veux que mon ordinateur règle le volume à un niveau spécifique tous les soirs à 11h45. J'utilise OS X 10.11.4. Je peux régler le volume manuellement via le terminal avec

osascript -e "set Volume 1.7"

ou comme script avec

set volume 1.7

Je veux que ce soit programmé tous les soirs. Il est difficile de trouver quoi que ce soit en ligne qui n'est pas super obsolète. Je ne veux pas vraiment utiliser iCal. D'après ce que j'ai trouvé en ligne, launchd est la voie à suivre, mais en tant que noob, je ne sais pas par où commencer.

Je vois des choses sur l'utilisation d'un .plist dans/Library/LaunchAgents J'ai donc trouvé un générateur de plist astucieux Launched.zerowidth.com mais quel type de code dois-je mettre dans le plist pour obtenir l'effet souhaité? Je me demande également si c'est le bon chemin à exécuter si un utilisateur est connecté.

Suis-je sur le mauvais chemin ici? Je suis ouvert à toute idée pour y arriver, mais je ne veux pas d'une application tierce que je dois garder ouverte tout le temps.

Merci,

Naboo

11
Naboo

Veuillez envisager d'utiliser le démon cron. Il est présent dans osx par défaut.

créer un script pour ajuster le volume

#!/bin/bash -l
/usr/bin/osascript -e "set Volume 1.7"

Ajoutez ensuite une nouvelle ligne à crontab.

crontab -e

Par défaut, il s'ouvrira dans l'éditeur vi (m). Mais vous pouvez ajuster n'importe quel éditeur avec

export EDITOR=/path/to/your/awesome/editor

Ajoutez ensuite une nouvelle chaîne à crontab

0 20 * * * /path/to/volume/script.sh

La commande donnée s'exécutera tous les jours à 20 h.

Veuillez trouver plus d'exemples crontab ici https://en.wikipedia.org/wiki/Cron

16
retgoat

Comme le souligne @TheDarkKnight, cron a été déconseillé au profit de launchd.

Pour utiliser launchd, enregistrez les éléments suivants sous com.example.volume.plist dans ~/Library/LaunchAgents/:

<?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.example.volume</string>
        <key>ProgramArguments</key>
        <array>
                <string>sh</string>
                <string>-c</string>
                <string>set volume 1.7</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
                <key>Hour</key>
                <integer>23</integer>
                <key>Minute</key>
                <integer>45</integer>
        </dict>
</dict>
</plist>

puis exécutez launchctl load ~/Library/LaunchAgents/com.example.volume commencer. Vous pouvez forcer l'exécution immédiate de la tâche via launchctl start com.example.volume.

Si vous préférez l'exécuter en tant que root, enregistrez-le dans /Library/LaunchDaemons/ au lieu.

12
Miles Wolbe