Est-ce sur Linux?
Il y a en fait quelques versions légèrement différentes du nom de la commande qui sont utilisés par ps, killall, etc.
Les deux variantes principales sont: 1) le nom de la commande longue, qui est ce que vous obtenez lorsque vous exécutez ps u; et 2) le nom de commande court, qui est ce que vous obtenez lorsque vous exécutez pssans aucun indicateur.
La plus grande différence se produit probablement si votre programme est un script shell ou tout ce qui nécessite un interprète, par exemple Python, Java, etc.
Voici un script vraiment trivial qui montre la différence. Je l'ai appelé mycat:
#!/bin/sh
cat
Après l'avoir exécuté, voici les deux types différents de ps.
Premièrement, sans u:
$ ps -p 5290
  PID TTY      ... CMD
 5290 pts/6    ... mycat
Deuxièmement, avec u:
$ ps u 5290
USER       PID ... COMMAND
mikel     5290 ... /bin/sh /home/mikel/bin/mycat
Notez comment commence la deuxième version /bin/sh?
Maintenant, pour autant que je sache, killalllit /proc/<pid>/statet saisit le deuxième mot entre les parens comme nom de commande, c'est donc vraiment ce que vous devez spécifier lorsque vous exécutez killall. Logiquement, cela devrait être la même chose que pssans le udrapeau, mais ce serait une bonne idée de vérifier.
A vérifier:
- que 
cat /proc/<pid>/statdit le nom de la commande? 
- que 
ps -e | grep db2dit le nom de la commande? 
- faire 
ps -e | grep db2et ps au | grep db2afficher le même nom de commande? 
Remarques
Si vous utilisez également d'autres indicateurs ps, vous pouvez trouver plus simple à utiliser ps -o commpour voir le nom court et ps -o cmdvoir le nom long.
Vous pourriez également trouver pkillune meilleure alternative. En particulier, pkill -fessaie de faire correspondre le nom de commande complet, c'est-à-dire le nom de commande tel qu'imprimé par ps uou ps -o cmd.