¿Cómo puedo matar un proceso basado en sus argumentos de línea de comando?
killall
, pgrep
y pkill
parece que solo funcionan en función del nombre del proceso.
Necesito esto para poder diferenciar entre una serie de aplicaciones que se ejecutan dentro de máquinas virtuales Java, donde java
está el nombre del proceso para todas ellas y el nombre real de la aplicación se puede encontrar mirando los argumentos de la línea de comandos.
Esto se puede hacer manualmente ps aux | grep myapp.jar
y luego eliminar manualmente el pid de la salida, pero me gustaría que un comando haga algo equivalente automáticamente.
bash: syntax error near unexpected token ';'
... Funciona en una declaración de caso cuando el signo es seguido por;;
... tal vez está utilizando un shell diferente (?)zsh
, lo que admite la sintaxis que usé. Dejándolo a cabo obras en tanto embargo, por lo que lo quitézsh
usuarios que en otros lugares, solo parece que encuentrozsh
usuarios aquí.Puede usar
htop
para ver todos los procesos que se ejecutan actualmente con sus argumentos de línea de comandos y para eliminar un proceso seleccionado.fuente
Reemplace a
argument
continuación con una expresión regular que debe representar la línea de comando completa de un proceso:fuente
Si no tiene pkill o lo que sea, simplemente use proc / [1-9] * / cmdline
fuente