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

10

J'exécutais un script qui prend des heures dans Terminal.

Je voulais l'exécuter sans surveillance pendant que je travaillais loin de mon MacBook, j'ai donc 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. Quand je suis revenu des heures plus tard et que j'ai déverrouillé l'écran (en tapant mon mot de passe), j'ai dû découvrir que pendant que l'écran était verrouillé, le script était en pause tout le temps, et je continuais juste où il s'était déclenché lorsque j'ai déverrouillé l'écran.

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

Comment puis-je atteindre cet objectif?

A Sz
la source

Réponses:

1

Vous avez raison de dire que le changement rapide d'utilisateur (activé en cliquant sur Nom d'utilisateurFenê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 des médias) d'interférer avec l'utilisation d'un autre utilisateur de votre système.

Ce que vous voulez faire à la place, c'est verrouiller votre écran à l'aide de Keychain Access .

Appuyez sur ⌘ cmd space, puis sur Keychain Accesspour lancer l'application. Ensuite, dans la barre de menus, cliquez sur Accès au trousseauPréférencesGénéral et cochez Show keychain status in menu bar .

Une icône de cadenas apparaîtra dans la zone système de votre barre de menus. Cliquez simplement sur Verrouiller l'écran pour verrouiller votre écran.

Écran verrouillé

Selon @MJK , vous devrez peut-être également empêcher votre Mac de s'endormir avant de partir.


la source
7

EDIT: Avec macOS High Sierra (à partir de la version bêta 5), ​​vous pouvez obtenir le même comportement "d'écran de verrouillage" mentionné par @Phong simplement via le menu de la barre d'état :


Je pense que votre ordinateur se met en veille après 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 s'endormir pendant l'exécution de votre script, vous pouvez l'exécuter caffeinate -sdans Terminal (remarque: ne fonctionne que sur MacBook si l'alimentation secteur est connectée) ou l'inclure dans votre script. Pour arrêter la commande, appuyez sur CTRL + C.

La façon dont je procède pour sécuriser mon compte alors que je suis encore connecté est d'activer l'option "exiger un mot de passe" dans les préférences système:

besoin d'un mot de passe

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

Vous pouvez également déclencher manuellement la mise en veille de l'affichage en appuyant sur CTRL + MAJ + ÉJECTER (si votre clavier possède un bouton d'éjection) ou en exécutant pmset displaysleepnow.

YourMJK
la source
Il y a aussi un bouton de veille dans le menu Apple, si cela aide.
DonielF
1
@DonielF En effet, mais cela met le système en veille, provoquant ainsi l'arrêt de l'exécution du script. Cela peut également être déclenché via CMD + OPTION + EJECT
YourMJK
Ce bouton ne met pas l'écran en veille? Bon à savoir.
DonielF
2
@DonielF En plus de mettre le système en veille, il met également l'écran en veille
YourMJK