¿El comando "kill" para controlar el trabajo es lo mismo que el comando "kill" para enviar una señal a un proceso?

¿El comando "kill" para controlar el trabajo es lo mismo que el comando "kill" para enviar una señal a un proceso?

En Linux, puedes hacer lo siguiente:

kill 1(o kill %1)

Lo que significa "cerrar los procesos entrabajo numero 1".

Y puedes hacer lo siguiente:

kill 1234

Que significa "enviar la SIGTERMseñal al proceso con PID 1234".

¿Son estos dos killcomandos el mismo comando o son dos comandos diferentes?

Respuesta1

No estoy seguro de que puedas hacerlo kill 1(o más bien, puedes intentarlo, pero no se te permitirá, a menos que seas root, y entonces te llevarás una sorpresa). 1aquí siempre se refiere al proceso con id 1, que suele ser init(o alguna variante del mismo).

Para responder realmente a su pregunta, si está en un shell que admite el control de trabajos, killhabrá un shell integrado que manejará ambos casos (administrando trabajos y procesos). ver por ejemplokillcomando de bash.

Si está en un shell que no admite el control de trabajos (¿hay alguno?), killhabrá un binario en el sistema, normalmente /bin/kill; ver por ejemploutil-linuxel killcomando. Incluso en un shell con un comando incorporado kill, puede acceder a éste, por ejemplo, especificando su ruta completa. También se puede acceder a este killcomando sin un shell (para usarlo desde otro programa).

Ver tambiénLa definición de POSIX dekill, que cubre ambos casos (pero no especifica qué se implementa y dónde).

información relacionada