Examinei os pacotes que mencionam unity ( apt-cache search unity ), ignorando qualquer coisa com lib , lens etc. no nome. unity-services chamou a atenção. Um dos arquivos neste pacote é /usr/share/upstart/sessions/unity-panel-service-lockscreen.conf , um trabalho Upstart contendo:
description "Backing Service for the Unity Panel"
author "Andrea Azzarone <[email protected]>"
start on desktop-lock
stop on desktop-unlock
respawn
exec /usr/lib/unity/unity-panel-service --lockscreen-mode
Como você deve ter adivinhado, esse trabalho é executado quando a tela está bloqueada. Isso oferece algumas opções:
Verifique se o comando na linha exec está em execução:
Verifique se /usr/lib/unity/unity-panel-service está sendo executado com a opção --lockscreen-mode . Observe que unity-panel-service está sempre em execução, mas quando você bloqueia a tela, outra instância é iniciada com essa opção. Então, algo como:
if pgrep -cf lockscreen-mode
then
# do stuff
fi
pgrep -f procura a linha de comando completa, para que possamos pesquisar para a opção.
Acho que nesse caso a página de manual de unity-panel-service está errado ou desatualizado. Diz:
Use um trabalho Upstart
Você pode trabalhar com a configuração de trabalho acima para escrever seu trabalho do Upstart. Crie um trabalho de sessão (digamos some-job ) ~/.config/upstart/some-job.conf contendo:
description "Some script to be run when screen gets locked"
start on desktop-lock
stop on desktop-unlock
script
# do stuff
end script
Um script inverso com os eventos start e stop trocados pode ser usado para executar coisas quando a tela está desbloqueada.