Inicie o novo grupo de processos em .xinitrc

3

Eu tenho uma barra de status (barra de limão) para a qual canalizo a saída de alguns scripts (tempo, bateria, volume, etc.). Esses scripts e a própria barra de status são iniciados em um único script bash statusbar . Quando o processo statusbar é eliminado, ele é limpo depois de tentar matar seus filhos, assim:

trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT

Isso tudo funciona bem se eu chamar statusbar em um terminal e, em seguida, sair com um sinal SIGTERM.

No entanto, quando eu inicio statusbar no meu arquivo .xinitrc da seguinte forma: statusbar & , o script statusbar não pode mais se limpar depois de si mesmo. O motivo para isso é que ele está no mesmo grupo de processos que o script .xinitrc , junto com todos os outros processos iniciados lá. Descobri isso seguindo esta resposta.

A pergunta é: posso colocar o processo statusbar e todos os seus filhos em seu próprio grupo de processos a partir de .xinitrc , para que ele possa se limpar bem? Alternativa, talvez haja uma maneira diferente de matar todos os filhos de statusbar

P.S .: Eu percebo que querer matar uma barra de status não é muito comum. No entanto, eu gostaria de fazer isso para que eu possa reiniciá-lo facilmente e, eventualmente, alterar o meu tema de cor dinamicamente, sem ter que sair do X.

    
por Koen 28.05.2016 / 07:46

1 resposta

2

Você pode tentar usar setsid (parte do pacote util-linux ) no .xinitrc para iniciar o script em uma nova sessão:

setsid statusbar

mas ainda receberá seus sinais?

    
por 28.05.2016 / 10:07