¿Está esto en Linux?
En realidad, hay algunas versiones ligeramente diferentes del nombre del comando que son utilizados por ps, killall, etc.
Las dos variantes principales son: 1) el nombre de comando largo, que es lo que obtienes cuando corres ps u; y 2) el nombre corto del comando, que es lo que obtienes cuando corres pssin ningún indicador.
Probablemente la mayor diferencia ocurre si su programa es un script de shell o cualquier cosa que requiera un intérprete, por ejemplo, Python, Java, etc.
Aquí hay un script realmente trivial que demuestra la diferencia. Lo llamé mycat:
#!/bin/sh
cat
Después de ejecutarlo, aquí están los dos tipos diferentes de ps.
Primero, sin u:
$ ps -p 5290
PID TTY ... CMD
5290 pts/6 ... mycat
En segundo lugar, con u:
$ ps u 5290
USER PID ... COMMAND
mikel 5290 ... /bin/sh /home/mikel/bin/mycat
¿Observa cómo comienza la segunda versión /bin/sh?
Ahora, por lo que puedo decir, en killallrealidad lee /proc/<pid>/staty toma la segunda palabra entre los parens como el nombre del comando, así que eso es realmente lo que necesitas especificar cuando corres killall. Lógicamente, eso debería ser lo mismo que dice psla ubandera, pero sería una buena idea verificarlo.
Cosas para verificar:
- ¿Qué
cat /proc/<pid>/statdice el nombre del comando?
- ¿Qué
ps -e | grep db2dice el nombre del comando?
- hacer
ps -e | grep db2y ps au | grep db2mostrar el mismo nombre de comando?
Notas
Si también está utilizando otros indicadores ps, puede que le resulte más fácil de usar ps -o commpara ver el nombre corto y ps -o cmdel nombre largo.
También puede encontrar pkilluna mejor alternativa. En particular, pkill -fintenta hacer coincidir usando el nombre completo del comando, es decir, el nombre del comando tal como se imprime con ps uo ps -o cmd.