Quando você executa gnome-terminal -e "vi" & MAIN_PID=$!
, não está capturando o PID de vi
em MAIN_PID
; você está capturando o PID dessa instância de gnome-terminal
. Se você quiser encontrar o PID de um processo de propriedade de gnome_terminal
, você poderia fazer alguma mágica na saída de pstree
:
pstree -p $MAIN_PID | grep -o 'vim([0-9]*) | grep -o '[0-9]*'
Para verificar se um processo ainda existe, você pode usar kill -0
, que não enviará nenhum sinal, e retornará com um código de saída 0, se o processo existir, ou 1, se não existir.