En la página del manual kill
está escrito de la siguiente manera
SINOPSIS
kill [ -s signal | -p ] [ -a ] [ -- ] pid ... kill -l [ signal ] -p Specify that kill should only print the process id (pid) of the named processes, and not send any signals.
Pero como lo intenté muchas veces en RH y RHEL, el comando kill -s SIGHUP |-p 123
nunca funcionó y siempre se informa un error
bash: -p: comando no encontrado
¿Cometí algún error?
shell
kill
man
documentation
usuario43312
fuente
fuente
[
]
corchetes y lo reemplazósignal
conSIGHUP
ypid
con123
? ¿Por qué hiciste eso? Porque sabes que los símbolos[
,signal
ypid
son meta-sintácticos, en lugar de literales. Indican cuál es la sintaxis. Bueno, el|
símbolo es lo mismo: otro indicador meta-sintáctico de sintaxis.[a | b]
significa: elemento sintáctico opcional, que puede ser cualquieraa
ob
(pero no ambos, ya que debe ser un elemento).[a | b]
?Respuestas:
Esta sintaxis en una página de manual significa:
El pipe (
|
) significa (exclusivo) o en la documentación, no es parte del comando.Cuando escribes
en su concha, que intentará arrancar
foo
ybar
, y canalizar la salida defoo
albar
programa. (Ese es el shell que hace eso, nofoo
(obar
), el|
no se pasa a ninguno de los procesos). En su caso, la segunda parte es-p 123
, por lo que el shell intenta encontrar un ejecutable llamado-p
y falla con ese mensaje de error.fuente
kill -p 123
. Dicebash: kill: p: invalid signal specification
. Ykill -p SIGINT 123
dice lo mismo. No creo que haya lugar para poner la señal de acuerdo con la sintaxis. ¿Te importa si solo das una demostración del uso de la-p
opción?Creo que te estás tropezando por el hecho de que hay un comando incorporado para Bash llamado
kill
, junto con el comandokill
.La página del manual que está leyendo se refiere al
kill
comando ubicado debajo/bin
. Usa la ruta completa para invocarlo:Por cierto, el
/usr/bin/kill
es solo un enlace a/bin/kill
.fuente