Qual é o significado de kill% 1

13

Eu vi o seguinte comando:

$ kill %1

Qual é o uso desta declaração?

q0987
fonte
11
"Acabei de sugar um ano da sua vida"
dmckee --- ex-moderador gatinho
Observe também que a zshtarefa foi concluída, de modo que a execução htop &e, em seguida, disown %[TAB]será concluída automaticamente disown %htop. Eu amo zsh:)
new123456

Respostas:

18

Resumidamente,

Significa eliminar o trabalho número 1, não o processo número um.

Os trabalhos podem ser listados com o jobscomando

Em termos mais gerais, refere-se a qualquer shell que você esteja usando, e a sintaxe pode diferir de shell para shell.

Usando o shell bash, um usuário pode ter vários processos (tarefas) executando simultaneamente, cujo processo pai é o shell que você está usando. Noções básicas do controle de tarefas do Google bash

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

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

Anders Abel
fonte
Menor .. mas não é uma pilha, é como uma fila.
infinito
6

Quando você cria um processo em segundo plano, por exemplo:

# find / &
[1] ....

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

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

o primeiro comando 'find' acima será finalizado. Conforme informado 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
Albert
fonte