Dans la page de manuel, kill
il est écrit comme suit
SYNOPSIS
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.
Mais comme j'ai essayé plusieurs fois dans RH et RHEL, la commande kill -s SIGHUP |-p 123
n'a jamais fonctionné et une erreur est toujours signalée
bash: -p: commande introuvable
Ai-je fait des erreurs?
shell
kill
man
documentation
user43312
la source
la source
[
]
crochets et remplacésignal
parSIGHUP
etpid
par123
? Pourquoi fais-tu ça? Parce que vous savez que les symboles[
,signal
etpid
sont métasyntaxiques, plutôt que littéraux. Ils indiquent quelle est la syntaxe. Eh bien, le|
symbole est la même chose: un autre indicateur méta-syntaxique de la syntaxe.[a | b]
signifie: élément syntaxique facultatif, qui peut être soita
oub
(mais pas les deux car il doit s'agir d'un seul élément).[a | b]
?Réponses:
Cette syntaxe dans une page de manuel signifie:
Le pipe (
|
) signifie (exclusif) ou dans la documentation, il ne fait pas partie de la commande.Lorsque vous tapez
dans votre shell, il tentera de démarrer
foo
etbar
, et de diriger la sortie defoo
vers lebar
programme. (C'est le shell qui fait cela, pasfoo
(oubar
), le|
n'est transmis à aucun des processus.) Dans votre cas, la deuxième partie est-p 123
, donc le shell essaie de trouver un exécutable appelé-p
et échoue avec ce message d'erreur.la source
kill -p 123
. Ça ditbash: kill: p: invalid signal specification
. Etkill -p SIGINT 123
dit la même chose. Je ne pense pas qu'il y ait de place pour mettre le signal selon la syntaxe. Cela vous dérange si vous donnez simplement une démonstration de l'utilisation de l'-p
option?Je pense que vous êtes déclenché sur le fait qu'il existe une commande intégrée à Bash appelée
kill
, avec la commandekill
.La page de manuel que vous lisez fait référence à la
kill
commande située sous/bin
. Utilisez le chemin complet pour l'invoquer:Soit dit en
/usr/bin/kill
passant, c'est juste un lien vers/bin/kill
.la source