
Estou executando vários comandos bash separados por ponto e vírgula:
% long-running-command-I-want ; another-command-I-dont
O long-running-command-I-want
ainda está em execução; naturalmente ainda não pid
existe another-command-I-dont
. Gostaria de matar/cancelar/prevenir preventivamente a execução another-command-I-dont
sem matar o long-running-command-I-want
que estou esperando há algum tempo. Posso fazer isso? Se sim, como?
Responder1
Se você executar outro shell, poderá descobrir o PID do bash
qual está executando o programa que deseja continuar. Se for bashPID
, envie um sinal de interrupção com:
kill -2 bashPID
Isso interromperá a execução do restante da linha de comando.
Opcionalmente, no shell original você pode digitar Ctrl- zpara suspender temporariamente o programa em execução em segundo plano. Isso continuaria com o restante da linha de comando, que seria liberada pelo sinal de interrupção. Você pode então retomar o programa em execução com fg
ou bg
, dependendo se deseja que ele continue em primeiro ou segundo plano.