13 votes

|OSX 10.10.5] L'exécution du script s'arrête lorsque l'écran est verrouillé ?

Je faisais tourner un script qui prend des plombes dans le Terminal.

Je voulais l'exécuter sans surveillance pendant que je travaillais loin de mon MacBook, alors j'ai choisi dans le menu (en haut à droite) nom d'utilisateur > Fenêtre de connexion... qui n'est PAS la déconnexion, mais l'écran de verrouillage.

Je m'attendais à ce que le script s'exécute. Lorsque je suis revenu des heures plus tard et que j'ai déverrouillé l'écran (en tapant mon mot de passe), j'ai dû constater que pendant que l'écran était verrouillé, le script était en pause tout le temps, et continuait simplement là où il s'était arrêté lorsque j'ai déverrouillé l'écran.

Le comportement attendu (connu d'autres dérivés d'UNIX) aurait été de s'exécuter pendant que l'interface utilisateur était verrouillée et sécurisée.

Comment puis-je y parvenir ?

8voto

Joost Baaij Points 3110

EDIT : Avec MacOS High Sierra (à partir de la version bêta 5), vous pouvez obtenir le même comportement d'"écran de verrouillage" que celui mentionné par l'utilisateur. @Phong simplement par le menu de la barre d'état :


Ce que je pense qu'il se passe, c'est que votre ordinateur se met en veille au bout d'un certain temps après avoir basculé dans la fenêtre de connexion, ce qui provoque l'arrêt de votre script.

Pour empêcher votre système de dormir pendant que votre script est en cours d'exécution, vous pouvez exécuter caffeinate -s dans Terminal (note : ne fonctionne que sur les MacBooks si l'alimentation secteur est connectée) ou incluez-le dans votre script. Pour arrêter la commande, tapez CTRL+C.

La façon dont je sécurise mon compte lorsque je suis encore connecté est d'activer l'option "mot de passe obligatoire" dans les préférences système :

require password

Ensuite, dès que le afficher (pas le système) se met en veille (également configurable dans les préférences), vous devez saisir un mot de passe pour accéder au compte.

Vous pouvez également déclencher manuellement la mise en veille de l'écran en appuyant sur CTRL+SHIFT+EJECT (si votre clavier dispose d'un bouton d'éjection) ou en exécutant la commande suivante pmset displaysleepnow .

2voto

Vous avez raison de dire que Changement rapide d'utilisateur (activé en cliquant sur Nom d'utilisateur : Fenêtre de connexion ne vous déconnecte pas. Cependant, il suspend les applications en cours d'exécution, empêchant ainsi les tâches intensives (ou même la lecture de médias) d'interférer avec l'utilisation de votre système par un autre utilisateur.

Ce que vous voulez faire à la place, c'est verrouiller votre écran en utilisant Accès au trousseau de clés .

Appuyez sur cmd space suivi par Keychain Access pour lancer l'application. Ensuite, dans la barre de menu, cliquez sur Accès au trousseau de clés Préférences Général y vérifier Show keychain status in menu bar .

Une icône de cadenas apparaîtra dans la zone système de votre barre de menu. Cliquez simplement sur Écran de verrouillage pour verrouiller votre écran.

Lock Screen

Conformément à @M.J.K vous devrez peut-être aussi empêcher votre Mac de s'endormir avant de partir.

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