Execute múltiplos programas de gui a partir do terminal sem rejeitá-los

7

Eu fiz um script muito simples (mas útil para mim). Tudo o que ele faz é apenas abrir alguns aplicativos que eu estava abrindo manualmente. Aqui está o código:

#!/bin/bash
netbeans &
mysql-workbench &
opera &
chromium-browser &

Agora, quando fecho o terminal, os aplicativos abertos pelo script continuam em execução. O que é normal, é isso que o "& amp;" está lá para.

Minha pergunta é: existe uma maneira de executar esses aplicativos automaticamente, mas também fechá-los automaticamente? Se eles ainda estivessem conectados ao terminal, eles fechariam, mas quando eu removo o E comercial só é executado o primeiro aplicativo.

Obrigado

    
por Karim Mtl 21.02.2017 / 04:55

2 respostas

5

Essas duas funções podem ser usadas no arquivo .bashrc para ativá-las e fechá-las. Basta chamá-las com lapp e kapp :

lapp(){
     netbeans &
     mysql-workbench &
     opera &
     chromium-browser &
}

kapp() {
    pkill 'netbeans|mysql-workbench|opera|chromium-browser'
}

#Or

kapp() {
    killall 'netbeans|mysql-workbench|opera|chromium-browser'
}

Informação:

  • lembre-se de executar source .bashrc depois de adicionar essas funções

(fonte: man pkill )

    
por George Udosen 21.02.2017 / 05:38
5

Você precisará criar o script para que esses comandos sejam executados no shell atual, em vez de no shell bifurcado iniciado para o script:

. ./foo.sh

Então, esses processos em segundo plano farão parte do controle de trabalho do seu shell.

Pode ser mais fácil usar uma função. No seu bashrc, por exemplo, adicione:

foo () {
    netbeans &
    mysql-workbench &
    opera &
    chromium-browser &
}

Então, quando você executar foo do bash, ele executará os comandos no seu shell atual.

    
por muru 21.02.2017 / 05:19