J'ai un long script en cours d'exécution sur l'ordinateur distant.
Je ne veux pas terminer ma session ssh, et je dois l'entrer dans un script shell.
Comment empêcher mon Mac de s'endormir depuis la ligne de commande?
sleep-wake
command-line
kobame
la source
la source
Réponses:
Dans Mountain Lion, vous pouvez utiliser la
caffeinate
commande.empêchera le sommeil inactif pendant 1000 secondes.
la source
La solution à ce problème n'est pas de garder le client (votre Mac) éveillé. L'utilisation d'approches comme celle-ci n'est pas fiable. Que se passe-t-il si la connexion réseau est perdue? Même si votre Mac est réveillé, le script s'arrêtera.
Utilisation
nohup
Si votre script de longue durée est appelé
eternity.sh
, essayez ce qui suit:nohup /path/to/eternity.sh > /path/to/output.out &
Vous pouvez maintenant même fermer la connexion et votre script continuera de fonctionner . Met en
&
arrière plan le processus afin que vous puissiez garder la connexion ouverte et entrer des commandes. Affichez toute sortie de votre script via:tail -f /path/to/output.out
Les chemins dans les exemples sont facultatifs si le script se trouve sur votre chemin et que vous souhaitez que la sortie du script soit écrite
output.out
dans le répertoire courant.Je gère des scripts qui s'exécutent pendant des jours à la fois. Des scripts comme ceux-ci doivent être détachés du terminal. Heureusement,
nohup
fournit une invocation de commande facile à retenir pour y parvenir - pensez à ne pas raccrocher .la source
man screen
.Pmset est une autre option . Utilisez la commande
pmset noidle
pour empêcher le sommeil tant qu'ilpmset
est en cours d'exécution. Malheureusement, cela nécessite une fenêtre de terminal distincte avecpmset
exécution en elle. Cependant, l'autre optioncaffeinate
,, vous permet uniquement de définir une certaine heure . Il s'agit donc de choisir si vous souhaitez ouvrir une deuxième session SSH ou faire face à une contrainte de temps.Edit: Selon le commentaire de binarybob , vous pouvez réellement l'exécuter en arrière-plan comme ceci:
pmset noidle &
Pour revenir aupmset
typefg
.la source
pmset
en arrière-plan à l'aidepmset noidle &
et donc continuer à utiliser l'invite de commandes actuelle. Tapezfg
pourpmset
revenir, à quel moment vous pouvez Ctrl + C!pmset noidle
- très agréable lorsque vous avez un ordinateur de bureau servant un bloc-notes IPython et un ordinateur portable se connectant à distance.Explication:
-i
- Empêche le sommeil inactif.-s
- Empêchez le système de dormir (entièrement, même si vous fermez le couvercle). Remarque: il ne fonctionne que sur secteur./bin/ssh
- Continuez simplement à écrire la commande que vous souhaitez exécuter. Utiliserssh
directement au lieu de/bin/ssh
devrait également fonctionner.Résultats: votre système ne dormira pas tant que la
ssh
commande sera en cours d'exécution.la source
Si vous recherchez l'option nucléaire comme je l'étais:
- Définir ou désactiver la mise en veille en raison de l'inactivité du système Mac à partir de la ligne de commande sous OS X
la source
L'économiseur d'écran StarMessage ( http://starmessagesoftware.com/moonscreensaver/ ) a également la possibilité de garder le MAC éveillé pendant 2 heures, 8 heures ou de façon permanente. Cette façon de désactiver le sommeil MAC est beaucoup plus facile que la caféine.
la source