| OSX 10.10.5] A execução de scripts para quando a tela é bloqueada?

10

Eu estava executando um script que leva anos no Terminal.

Eu queria executá-lo sem supervisão enquanto trabalhava fora do meu MacBook, então escolhi no menu (canto superior direito) o nome de usuário > Janela de login ... , que NÃO é logout, mas a tela de bloqueio.

Eu esperava que o script fosse executado. Quando retornei horas mais tarde e desbloquei a tela (digitando minha senha), tive que descobrir que, enquanto a tela estava bloqueada, o script ficava em pausa o tempo todo e continuava onde se detinha quando eu desbloqueia a tela.

O comportamento esperado (conhecido de outros derivados do UNIX) teria sido executado enquanto a interface do usuário estivesse bloqueada e segura.

Como posso conseguir isso?

A Sz
fonte

Respostas:

1

Você está certo de que a Troca rápida de usuário (ativada clicando em Nome de usuárioJanela de logon ... não faz o logout. No entanto, suspende aplicativos em execução ativa, impedindo que tarefas intensivas (ou mesmo a reprodução de mídia) interfiram no uso do sistema por outro usuário.

O que você deseja fazer é bloquear a tela usando o Acesso às Chaves .

Pressione ⌘ cmd space, seguido de Keychain Accesspara iniciar o aplicativo. Em seguida, na barra de menu, clique em Keychain de AcessoPreferênciasGeral e verificação Show keychain status in menu bar .

Um ícone de cadeado aparecerá na área do sistema da barra de menus. Basta clicar em Bloquear tela para bloquear sua tela.

Tela de bloqueio

De acordo com o @MJK , talvez você também precise impedir que o seu Mac durma antes de ir embora.


fonte
7

EDIT: Com o macOS High Sierra (a partir da versão 5), você pode obter o mesmo comportamento de "tela de bloqueio" mencionado por @Phong simplesmente através do menu da barra de status:


O que eu acho que está acontecendo é que seu computador entra em suspensão após um certo período de tempo após você alternar para a janela de logon que faz com que seu script seja interrompido.

Para impedir que seu sistema durma enquanto o script está em execução, você pode executar caffeinate -sno Terminal (nota: só funciona em MacBooks se a energia CA estiver conectada) ou incluí-lo no seu script. Para parar o comando, pressione CTRL + C.

O modo como protejo minha conta enquanto ainda estou logado é ativar a opção "exigir senha" nas preferências do sistema:

requer senha

Então, assim que a tela (não o sistema) entrar em suspensão (também configurável nas preferências), você deverá digitar uma senha para acessar a conta.

Você também pode disparar manualmente o modo de suspensão da tela pressionando CTRL + SHIFT + EJECT (se o teclado tiver um botão de ejeção) ou executando pmset displaysleepnow.

YourMJK
fonte
Também há um botão de suspensão no menu Apple, se isso ajudar.
DonielF
1
@DonielF De fato, mas isso coloca o sistema em suspensão, causando a interrupção da execução do script. Isso também pode ser acionado através CMD + OPTION + EJECT
YourMJK
Esse botão não coloca a tela no modo de suspensão? Bom saber.
DonielF
2
@DonielF Além disso para colocar o sistema para dormir ele também coloca a tela para o sono
YourMJK