Basta anexar kill $!
ao final: process1 & process2; kill $!
$!
é uma variável (confusamente conhecida como "parâmetro" no Bash) e expand para o último PID de fundo em qualquer lugar:
Expands to the process ID of the job most recently placed into the background, whether executed as an asynchronous command or using the bg builtin (see JOB CONTROL below).
%%
é especial e só será expandido para o último PID de segundo plano no contexto dos comandos internos do shell, como fg
e kill
. Infelizmente isso não está claro na página man
:
The symbols %% and %+ refer to the shell's notion of the current job, which is the last job stopped while it was in the foreground or started in the background.
PS: Se você precisar fazer isso com uma cadeia de comandos, certifique-se de que kill $!
tenha aspas simples para que seja expandido em tempo de execução. Melhor ainda, escreva uma função em vez de um alias para evitar suas limitações .