Qual é o significado de matar% 1

8

Eu vi o seguinte comando:

$ kill %1

Qual é o uso desta declaração?

    
por q0987 31.07.2011 / 00:37

2 respostas

13

Resumidamente,

Significa matar job número 1, não processar número um.

Os trabalhos podem ser listados com o comando jobs .

Mais amplamente, refere-se ao shell que você está usando, e a sintaxe pode diferir de shell para shell.

Usando o bash shell, um usuário pode ter vários processos (jobs) sendo executados simultaneamente, cujo processo pai é o shell que você está usando. Princípios básicos do controle de trabalho do Google

O comando builtin kill é usado para enviar um sinal para um desses pipelines de trabalho. Se o sinal específico não for especificado, SIGTERM é usado, o que normalmente termina (mata) o trabalho, daí o nome kill. Mas qualquer sinal pode ser especificado, algo que pode, de alguma forma, redefinir o processo ou causar um comportamento de não matar.

Finalmente, o% 1 é um caminho (de muitos!) de especificar para qual tarefa você deseja enviar o sinal. % 1 refere-se ao trabalho no topo da pilha de trabalhos em segundo plano.

    
por 31.07.2011 / 00:40
6

Quando você faz um plano de fundo, por exemplo:

# find / &
[1] ....

# ls -lr /usr &
[2] ....

Agora, aqui há dois processos em execução em segundo plano e conectados ao terminal atual. Se você fizer:      matar% 1

o primeiro comando 'find' acima será finalizado. Como dito por Anders você pode listar os processos em segundo plano atualmente em execução no terminal e matá-los:

# jobs
[1] find / ...
[2] ls -lr ...

# kill %1
    
por 31.07.2011 / 03:14