Finalizar processos filho no ctrl-c

0

No minúsculo núcleo do Linux, eu tenho o seguinte script:


#!/bin/sh
# ~/.X.d/freerdp.sh

rdp(){
while true
do
xfreerdp -f [IP Address]
done
}

rdp &

É bem simples; quando o X inicia e verifica o diretório .X.d (como é o caso no minúsculo núcleo) ele encontra e executa esse script. O script inicia o freerdp e mantém uma conexão aberta ao servidor, reiniciando-o sempre que ele é fechado. Como você pode ver na linha rdp & , a função é executada em segundo plano para permitir que o X continue sua rotina de inicialização.

O problema é que sempre que eu cancelo o X com um CTRL + ALT + BACKSPACE o processo rdp não morre.

Estou procurando uma maneira de eliminar o processo assim que o X terminar, seja por meio de:

A) um script, executado no fechamento X, que mata o processo ou B) modificando o script para verificar o valor de retorno do comando xfreerdp .

NB - se a solução verificar o valor de retorno, ela só deverá terminar se o comando não abrir o display X. Por esse motivo, se você pudesse me indicar uma referência para xfreerdp valores de retorno eu ficaria grato.

    
por jackweirdy 25.06.2012 / 17:13

2 respostas

0

No final, resolvi isso alterando o código para isso:

#!/bin/sh
# ~/.X.d/freerdp.sh

while true
do
xfreerdp -f [IP Address]
done

Feio, e eu tive que reorganizar a ordem de execução do script para que este fosse executado por último, mas funciona ...

    
por 09.07.2012 / 22:38
0

Veja se isso ajuda

Parece que esta questão já está respondida .

    
por 25.06.2012 / 19:55