Il y a plusieurs façons de s'y prendre.
Méthode n ° 1 - ps
Vous pouvez utiliser la ps
commande pour rechercher l'ID de processus pour ce processus, puis utiliser le PID pour tuer le processus.
Exemple
$ ps -eaf | grep [w]get
saml 1713 1709 0 Dec10 pts/0 00:00:00 wget ...
$ kill 1713
Méthode n ° 2 - pgrep
Vous pouvez également trouver l'ID de processus à l'aide de pgrep
.
Exemple
$ pgrep wget
1234
$ kill 1234
Méthode n ° 3 - pkill
Si vous êtes certain que c'est le seul que wget
vous avez exécuté, vous pouvez utiliser la commande pkill
pour supprimer le travail par son nom.
Exemple
$ pkill wget
Méthode n ° 4 - emplois
Si vous êtes dans le même shell à partir duquel vous avez exécuté le travail actuellement en arrière-plan. Vous pouvez vérifier s'il est toujours en cours à l'aide de la jobs
commande et également le tuer par son numéro de travail.
Exemple
Mon faux travail, sleep
.
$ sleep 100 &
[1] 4542
Trouvez son numéro d'emploi. REMARQUE: le numéro 4542 correspond à l'ID de processus.
$ jobs
[1]+ Running sleep 100 &
$ kill %1
[1]+ Terminated sleep 100
Méthode n ° 5 - fg
Vous pouvez ramener un travail en arrière-plan au premier plan à l'aide de la fg
commande.
Exemple
Faux travail, sleep
.
$ sleep 100 &
[1] 4650
Obtenez le numéro du travail.
$ jobs
[1]+ Running sleep 100 &
Ramenez le travail n ° 1 au premier plan, puis utilisez Ctrl+ C.
$ fg 1
sleep 100
^C
$
jobs
n'a pasoutput
etfg
sais:-bash: fg: 1: no such job
. Mais taperfg
fonctionne bien etpkill wget
fonctionne bien aussi. maisps -eaf|grep wget
et puis lakill <process number>
dose n'arrête pas le travail. ps: J'utilise le troisième numéro comme numéro de processus .ps
. Le 3ème # est l'identifiant du processus du parent.ps -eaef| grep [w]get
.pgrep
place,pgrep wget
.ps -eaf | grep [w]get
. Les options sont dans laps
page de manuel.man ps
.En bash, vous pouvez utiliser
fg
pour faire passer le travail au premier plan, puis utilisez Ctrl+COu lister le processus en arrière-plan avec
jobs
et ensuite faire(avec 1 remplacé par le numéro
jobs
qui vous a été donné)la source
Vous pouvez également utiliser
kill $!
pour supprimer le dernier travail en arrière-plan.la source
EDIT: une fois au premier plan, vous pouvez Ctrl+ Cou, comme @Zelda le mentionne, tuez avec le '% x' où 'x' est le numéro du travail qui enverra le signal par défaut (très probablement SIGTERM dans le cas de Linux).
il suffit de taper
fg
pour le mettre au premier plan, si c'est le dernier processus que vous avez mis en arrière-plan (avec '&').Si ce n'était pas le dernier, tapez:
jobs
et trouvez le 'numéro de travail', représenté dans '[]'. Puis tapez simplement:..where '2' est le numéro de travail, par exemple:
la source
La méthode correcte consiste à taper
jobs
puis à utiliser le numéro de travail pour le tuer. Pour utiliser le pid pour le tuer, vous devez le mettre au premier plan, comme indiqué dans la première réponse.Essaye ça
Si vous exécutez des travaux juste après l'avoir tué, vous devriez voir ceci
la source
Une chose que je ne vois pas ici, et que je trouve très utile, en particulier lors du test des commandes, est
pidof
. Vous pouvez utiliserpidof [command]
pour trouver l'ID de processus d'un processus en cours d'exécution. J'aime ça parce que cela me permet de trouver rapidement l'id de la commande que je veux, ce qui est généralement quelque chose que je viens d'appeler.Une fois que vous avez le pid, vous pouvez simplement tuer le processus. Il permet de créer des scripts simples pour tuer un processus uniquement s'il est en cours d'exécution.
la source
Un exemple courant est l'
stress
outil. Disons que vous avez couru ce qui suit:et fermé la fenêtre du terminal. Le processus continuerait de consommer vos ressources en arrière-plan.
C'est ce que je fais:
pgrep
répertorie les PID du processus soumis et les stocke dans une variablex
qui l'a ensuite utiliséekill -9
pour le terminer.la source
lors du dernier processus arrêté de bash (Ctrl-Z) vous allez tuer par:
ou si vous voulez choisir, utilisez:
jobs
ensuite:
kill %N
comme
kill %2
la source