Pressionar Ctrl + C envia um sinal SIGINT para o processo em execução no primeiro plano do terminal, finalizando-o a menos que o processo ignore deliberadamente os sinais SIGINT;
Então pressionando Ctrl + C você está dizendo que o processo em execução no primeiro plano do terminal termine.
Para executar um processo que o impede de ocupar o terminal, você pode iniciá-lo em segundo plano adicionando &
no final do comando:
user@user-X550CL:~/tmp$ bash script.sh &
[1] 24961
user@user-X550CL:~/tmp$
Se você já iniciou um processo em primeiro plano, ainda é possível pará-lo pressionando Ctrl + Z :
user@user-X550CL:~/tmp$ bash script.sh
^Z
[1]+ Stopped bash script.sh
user@user-X550CL:~/tmp$
Envie-o para o segundo plano e retome sua execução usando o bg
incorporado:
user@user-X550CL:~/tmp$ bg
[1]+ bash script.sh &
user@user-X550CL:~/tmp$
Você pode enviar vários processos para o segundo plano:
user@user-X550CL:~/tmp$ bash script.sh &
[1] 24961
user@user-X550CL:~/tmp$ bash script.sh &
[2] 24984
user@user-X550CL:~/tmp$ bash script.sh &
[3] 24989
user@user-X550CL:~/tmp$
Você pode listar todos os processos em segundo plano usando o jobs
embutido:
user@user-X550CL:~/tmp$ jobs
[1] Running bash script.sh &
[2]- Running bash script.sh &
[3]+ Running bash script.sh &
user@user-X550CL:~/tmp$
Para mover um processo do segundo plano para o primeiro plano, você pode usar o fg
incorporado passando o número do trabalho como um argumento:
user@user-X550CL:~/tmp$ fg %1
bash script.sh
A execução de fg
sem especificar um número de trabalho como um argumento terá o efeito de mover para o primeiro plano o último processo em segundo plano:
user@user-X550CL:~/tmp$ fg
bash script.sh