Uma maneira seria enviar o sinal SIGSTOP
para todos os processos do seu irmão:
sudo pkill -STOP -u brother
Para despertar os processos interrompidos, o sinal SIGCONT
é usado:
sudo pkill -CONT -u brother
Você pode usar um trabalho de sessão do Upstart, que pode ser executado quando você entra ou sai ou bloqueia ou desbloqueia a tela. Por exemplo, crie um arquivo .conf
em ~/.config/upstart
(digamos ~/.config/upstart/stop-brother.conf
) contendo:
description "Stop all my brother's processes"
start on desktop-start or desktop-unlock
task
exec sudo pkill -STOP -u brother
E um arquivo de conversa (digamos ~/.config/upstart/start-brother.conf
) contendo:
description "Resume all my brother's processes"
start on desktop-end or desktop-lock
task
exec sudo pkill -CONT -u brother
Você também precisa de uma entrada NOPASSWD
em sudoers
:
sudo tee /etc/sudoers.d/stop-brother <<EOF
$USER ALL = (ALL) /usr/bin/pkill -STOP -u brother, /usr/bin/pkill -CONT -u brother
EOF
Agora, os sinais devem ser enviados automaticamente quando você fizer login, sair, bloquear ou desbloquear a tela. Você pode iniciar manualmente usando:
start stop-brother
start start-brother