todos terminar servicios procesos proceso matar los conocer colgados linux

terminar - procesos colgados en linux



Proceso de matar por archivo pid (2)

Intento matar un proceso por archivo pid:

kill -9 $(cat /var/run/myProcess.pid)

El archivo pid contiene el número de proceso. Sin embargo, ejecutar kill no me proporciona una salida estándar y el proceso sigue vivo. Pero esto funciona:

kill -9 PID

¿Qué pasa con el primer comando de matar? ¿No puede extraer el PID del archivo?

Contenido de ejemplo del archivo pid:

5424

y

kill -9 5424

trabajos.


Creo que estás experimentando esto porque tu shell predeterminado es dash (el shell de Debian almquist), pero estás usando la sintaxis bash. Puede especificar bash en la línea shebang con algo así como,

#!/usr/bin/env bash

O bien, podría usar la expresión compatible con el admdrew y el bash compatible con admdrew en los comentarios

kill -9 `cat /var/run/myProcess.pid`

De todos modos, no puedes confiar en que /bin/sh sea ​​bash.


En algunas situaciones, el más compacto:

pkill -F /var/run/myProcess.pid

es el camino a seguir. He tenido problemas con las variedades:

kill $(cat /var/run/myProcess.pid) # Or kill `cat /var/run/myProcess.pid`

cuando tuve que poner el comando en otra cosa que podría analizarlo usando diferentes reglas, como hace Monit para sus comandos de inicio / detención.