Processos de usuário em segundo plano e como manipulá-los
Dica publicada em Linux / Comandos
Processos de usuário em segundo plano e como manipulá-los
Seja como usuário comum ou como root, podemos executar processos em segundo plano, para desfrutar do sistema multi-tarefas e deixar o prompt livre para outras atividades.
Os comandos/combinações para manipular processos em segundo plano, são:
Vamos tomar como exemplo, o comando:
ping -c 120 127.0.0.1 &>/dev/null
Este comando realiza um ping na interface de loopback da própria máquina, com 120 repetições, e tanto a saída normal quanto a saída de erros, vai para o arquivo "/dev/null". Ou seja, é um comando que apenas vai "travar" o prompt, servindo aos propósitos desta dica.
Primeiramente, vamos iniciar o comando em primeiro plano, pausá-lo pressionando a combinação Ctrl+z, visualizá-lo com jobs e colocá-lo em segundo plano com bg:
ping -c 120 127.0.0.1 &>/dev/null
Ao rodar o comando jobs, cada processo recebe um número (independente do PID). Desta forma, usamos esta numeração para dizer qual processo queremos retomar, colocar em segundo plano (como acima) ou terminar.
Agora, vamos iniciar o processo, já em segundo plano, colocando o "&" ao final da linha, visualizá-lo com "jobs", colocar em primeiro plano com "fg", e em seguida, terminar o processo com a combinação Ctrl+c.
ping -c 120 127.0.0.1 &>/dev/null &
Para terminar um processo rodando em segundo plano:
ping -c 120 127.0.0.1 &>/dev/null &
Obs.: também é possível terminar um processo em segundo plano pelo seu PID.
Curiosidade:- Experimente rodar o seguinte comando:
ping 127.0.0.1 &
* Já alerto que ele é inofensivo e pode ser resolvido utilizando apenas os conhecimentos adquiridos nesta dica.
Os comandos/combinações para manipular processos em segundo plano, são:
- rfg :: coloca o processo em primeiro plano (foreground).
- bg :: coloca o processo em segundo plano (background).
- jobs :: lista os processos correndo em segundo plano, ou apenas pausados/parados.
- & :: o caractere "E comercial" colocado ao final de um comando, faz com que o mesmo rode em segundo plano desde o início.
- Ctrl+c :: mata o processo atual ativo.
- Ctrl+z :: pausa/para o processo atual ativo.
Vamos tomar como exemplo, o comando:
ping -c 120 127.0.0.1 &>/dev/null
Este comando realiza um ping na interface de loopback da própria máquina, com 120 repetições, e tanto a saída normal quanto a saída de erros, vai para o arquivo "/dev/null". Ou seja, é um comando que apenas vai "travar" o prompt, servindo aos propósitos desta dica.
Primeiramente, vamos iniciar o comando em primeiro plano, pausá-lo pressionando a combinação Ctrl+z, visualizá-lo com jobs e colocá-lo em segundo plano com bg:
ping -c 120 127.0.0.1 &>/dev/null
^Z
[1]+ Parado ping -c 120 127.0.0.1 &>/dev/null
$ jobs
[1]+ Parado ping -c 120 127.0.0.1 &>/dev/null
$ bg %1
[1]+ ping -c 120 127.0.0.1 &>/dev/null &
$ jobs
[1]+ Executando ping -c 120 127.0.0.1 &>/dev/null &
$
Ao rodar o comando jobs, cada processo recebe um número (independente do PID). Desta forma, usamos esta numeração para dizer qual processo queremos retomar, colocar em segundo plano (como acima) ou terminar.
Agora, vamos iniciar o processo, já em segundo plano, colocando o "&" ao final da linha, visualizá-lo com "jobs", colocar em primeiro plano com "fg", e em seguida, terminar o processo com a combinação Ctrl+c.
ping -c 120 127.0.0.1 &>/dev/null &
[1] 24771
$ jobs
[1]+ Executando ping -c 120 127.0.0.1 &>/dev/null &
$ fg %1
ping -c 120 127.0.0.1 &>/dev/null
^C
$
Para terminar um processo rodando em segundo plano:
ping -c 120 127.0.0.1 &>/dev/null &
[1] 24775
$ jobs
[1]+ Executando ping -c 120 127.0.0.1 &>/dev/null &
$ kill %1
$ jobs
[1]+ Terminado ping -c 120 127.0.0.1 &>/dev/null
$
Obs.: também é possível terminar um processo em segundo plano pelo seu PID.
Curiosidade:- Experimente rodar o seguinte comando:
ping 127.0.0.1 &
* Já alerto que ele é inofensivo e pode ser resolvido utilizando apenas os conhecimentos adquiridos nesta dica.
Excelente dica meu brow, eu estava com estava com algumas dificuldades aqui quando tentava rodar alguns processos em segundo plano e sua dica me deu a solução, vlw mesmo!!!!