¿Cuál es el significado de kill% 1?

13

He visto el siguiente comando:

$ kill %1

¿Cuál es el uso de esta declaración?

q0987
fuente
1
"Acabo de chupar un año de tu vida"
dmckee --- ex gatito moderador
Tenga en cuenta también que zshtiene finalización de trabajo, de modo que se ejecuta htop &y luego disown %[TAB]se completará automáticamente disown %htop. I love zsh:)
new123456

Respuestas:

18

Brevemente,

Significa matar el trabajo número 1, no procesar el número uno.

Los trabajos se pueden enumerar con el jobscomando.

En términos más generales, se relaciona con cualquier shell que esté utilizando, y la sintaxis podría diferir de un shell a otro.

Usando el shell bash, un usuario puede tener varios procesos (trabajos) ejecutándose simultáneamente, cuyo proceso padre es el shell que está utilizando. Conceptos básicos de control de trabajo de Google bash

El comando de eliminación integrado se utiliza para enviar una señal a una de esas canalizaciones de trabajo. Si no se especifica la señal específica, se utiliza SIGTERM, que normalmente finaliza (mata) el trabajo, de ahí el nombre kill. Pero se puede especificar cualquier señal, algunas de las cuales podrían de alguna manera restablecer el proceso o causar un comportamiento no mortal.

Finalmente,% 1 es una forma (¡de muchas!) De especificar a qué trabajo desea enviar la señal. % 1 se refiere al trabajo en la parte superior de la pila de trabajos en segundo plano.

Anders Abel
fuente
Menor ... pero no es una pila, es como una cola.
interminable
6

Cuando creas un proceso en segundo plano, por ejemplo:

# find / &
[1] ....

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

Ahora, aquí hay dos procesos ejecutándose en segundo plano y conectados al terminal actual. Si lo haces: mata% 1

el primero, el comando 'buscar' anterior se terminará. Como le dijo Anders, puede enumerar los procesos en segundo plano que se ejecutan actualmente en el terminal y eliminarlos:

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

# kill %1
Albert
fuente