# Guia do Linux/Iniciante+Intermediário/Execução de programas/Controle de execução de processos
## Controle de execução de processos

Abaixo algumas comandos e métodos úteis para o controle da execução de processos no GNU/Linux.

### Interrompendo a execução de um processo

Para cancelar a execução de algum processo rodando em primeiro plano, basta pressionar as teclas CTRL C. A execução do programa será cancelada e será mostrado o aviso de comando. Você também pode usar o comando [#s-run-kill kill, Seção 7.7.6] para interromper um processo sendo executado.

### Parando momentaneamente a execução de um processo

Para parar a execução de um processo rodando em primeiro plano, basta pressionar as teclas CTRL Z. O programa em execução será pausado e será mostrado o número de seu job e o aviso de comando. Para retornar a execução de um comando pausado, use [#s-run-fg fg, Seção 7.7.4] ou [#s-run-bg bg, Seção 7.7.5]. O programa permanece na memória no ponto de processamento em que parou quando ele é interrompido. Você pode usar outros comandos ou rodar outros programas enquanto o programa atual está interrompido.

### jobs

O comando jobs mostra os processos que estão parados ou rodando em segundo plano. Processos em segundo plano são iniciados usando o sí­mbolo "&amp;" no final da linha de comando (veja [#s-run-tipos Tipos de Execução de comandos/programas, Seção 7.3]) ou através do comando bg. jobs O número de identificação de cada processo parado ou em segundo plano (job), é usado com os comandos [#s-run-fg fg, Seção 7.7.4] e [#s-run-bg bg, Seção 7.7.5]. Um processo interrompido pode ser finalizado usando-se o comando kill %[num], onde [num] é o número do processo obtido pelo comando jobs.

### fg

Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Você deve usar o comando jobs para pegar o número do processo rodando em segundo plano ou interrompida, este número será passado ao comando fg para ativa-lo em primeiro plano. fg [número] Onde número é o número obtido através do comando jobs. Caso seja usado sem parâmetros, o fg utilizará o último programa interrompido (o maior número obtido com o comando jobs). Exemplo: fg 1.

### bg

Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, é necessário primeiro interromper a execução do comando com CTRL Z, será mostrado o número da tarefa interrompida, use este número com o comando bg para iniciar a execução do comando em segundo plano. bg [número] Onde: número número do programa obtido com o pressionamento das teclas CTRL Z ou através do comando jobs.

### kill

Permite enviar um sinal a um comando/programa. Caso seja usado sem parâmetros, o kill enviará um sinal de término ao processo sendo executado. kill [opções] [sinal] [número] Onde:

#### número

    É o número de identificação do processo obtido com o comando [#s-run-ps ps, Seção 7.5]. Também pode ser o número após o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida. Veja [#s-run-ver-backgrounds jobs, Seção 7.7.3].

#### sinal

    Sinal que será enviado ao processo. Se omitido usa -15 como padrão.

#### -9

    Envia um sinal de destruição ao processo ou programa. Ele é terminado imediatamente sem chances de salvar os dados ou apagar os arquivos temporários criados por ele.
Você precisa ser o dono do processo ou o usuário root para termina-lo ou destruí­-lo. Você pode verificar se o processo foi finalizado através do comando ps. Os tipos de sinais aceitos pelo GNU/Linux são explicados em detalhes em [#s-run-sinais Sinais do Sistema, Seção 7.7.9]. Exemplo: kill 500, kill -9 500, kill %1.

### killall

Permite finalizar processos através do nome. killall [opções] [sinal] [processo] Onde:

#### processo

    Nome do processo que deseja finalizar

#### sinal

    Sinal que será enviado ao processo (pode ser obtido usando a opção -i).

#### -i

    Pede confirmação sobre a finalização do processo.

#### -l

    Lista o nome de todos os sinais conhecidos.

#### -q

    Ignora a existência do processo.

#### -v

    Retorna se o sinal foi enviado com sucesso ao processo.

#### -w

    Finaliza a execução do killall somente após finalizar todos os processos.
Os tipos de sinais aceitos pelo GNU/Linux são explicados em detalhes na [#s-run-sinais Sinais do Sistema, Seção 7.7.9]. Exemplo: killall -HUP inetd

### killall5

Envia um sinal de finalização para todos os processos sendo executados. killall5 [sinal]

### Sinais do Sistema

Retirado da página de manual signal. O GNU/Linux suporta os sinais listados abaixo. Alguns números de sinais são dependentes de arquitetura. Primeiro, os sinais descritos no POSIX 1:
As letras da coluna Ação tem o seguinte significado:
** A - A ação padrão é terminar o processo.
** B - A ação padrão é ignorar o sinal.
** C - A ação padrão é terminar o processo e mostrar o core.
** D - A ação padrão é parar o processo.
** E - O sinal não pode ser pego.
** F - O sinal não pode ser ignorado.
Sinais não descritos no POSIX 1 mas descritos na SUSv2:
(Para os casos SIGSYS, SIGXCPU, SIGXFSZ, e em algumas arquiteturas também o SIGGUS, a ação padrão do Linux para kernels 2.3.27 e superiores é A (terminar), enquanto SYSv2 descreve C (terminar e mostrar dump core).) Seguem vários outros sinais:
O "-" significa que o sinal não está presente. Onde três valores são listados, o primeiro é normalmente válido para o Alpha e Sparc, o do meio para i386, PowerPc e sh, o último para o Mips. O sinal 29 é SIGINFO/SIGPWR em um Alpha mas SIGLOST em um Sparc.