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.