O Awesome suporta Sinais , especialmente o sinal exit
, que permite detectar se o impressionante está sendo reiniciado ou não. Talvez você possa usar isso.
Talvez uma abordagem mais fácil seja usar o seguinte:
awful.util.spawn_with_shell("pgrep program || program")
A parte pgrep program
primeiro verifica se já existe alguma instância deste programa em execução. Se não, é executado. Isso obviamente não funciona se você quiser que o programa seja executado em vários servidores X em execução local ou se já estiver iniciado.
spawn_with_shell
também lida com alguns outros parâmetros, que não são necessários, mas se você estiver interessado, eles podem ser encontrados aqui: