Chaque fois que je dois tuer un processus d'arrière-plan, je le fais ps -e | grep <process_name>
Qui imprime quelque chose comme ça 1766 ? 00:00:13 conky
, puis j'utilise l'ID de processus kill
comme ça kill 1766
.
Existe-t-il un moyen de simplifier cela? Rendez-vous plus rapide? réduire la quantité de frappe?
Réponses:
(TL, DR:
pgrep
,pkill
)De nombreuses variantes Unix sont fournies avec
pgrep
et son compagnonpkill
: Solaris , Linux (qui fait partie des utilitaires de processus standard , peut être absent des systèmes Linux embarqués), FreeBSD , OpenBSD , NetBSD ,… mais uniquement à partir de MacPorts sur OS X , pas AIX , et seulement récemment dans HP-UX . L'pgrep
utilitaire affiche l'ID de processus des processus correspondant par nom, utilisateur et quelques autres critères. L'argument topgrep
est interprété comme une expression rationnelle qui doit correspondre à une partie du nom de l'exécutable du processus (à moins que vous ne passiez une option pour le modifier). Si vous appelezpkill
au lieu depgrep
, l'utilitaire envoie un signal au lieu d'afficher les ID de processus.Un autre utilitaire similaire est pidof . Sous Linux , il est fourni par SysVinit ou BusyBox (vous le trouverez donc souvent sur un système Linux embarqué qui n'en a pas
pgrep
); il existe également des ports sur d'autres variantes d'Unix. L'pidof
utilitaire a moins d'options, il ne correspond généralement qu'à des noms de fichiers exécutables entiers. Son utilitaire compagnonkillall
envoie un signal aux programmes correspondants¹.¹ Méfiez-vous qui
killall
a une signification différente sur Solaris et peut-être d'autres variantes d'Unix; ne saisissez pas enkillall
tant que root sur Solaris.la source
killall ProcessName
(cette commande présente un inconvénient dans la mesure où vous ne connaissez pas toujours le nom de processus d'un programme).pidof ProccessName
etkill the result form pidof
ps xu | grep <process name> | grep -v grep | awk '{ print $2 }' | xargs kill -9
Essayez cette seule ligne et réutilisez-la dans l'historique de votre bash, ou mieux créez un alias pour elle.la source
pidof
semble un peu plus facile, mais il faut tout de même 2 étapesBien que Hanan ait de bonnes suggestions, j'ajouterai
pgrep
/pkill
. Ils permettent un contrôle beaucoup plus fin du processus que vous trouvez et des expressions régulières si vous ne connaissez pas le processus précis que vous devrez tuer.PS Hanan
pidof
peut être alimentékill
directement avec des backticks:la source
pkill
était exactement ce que je cherchais, je connais la plupart du temps le nom du processus, principalement sonconky
oufirefox
ouchrome
ou quelque chose comme ça. MerciQue dis-tu de ça -
Exemple:
Mise à jour:
Désolé, cela ne répond évidemment pas à l'exigence de moins de frappe, donc une bonne façon de le faire serait d'ajouter un
function
à votre.bashrc
,.profile
ou quel que soit le script de démarrage. La fonction peut être quelque chose comme ça -Une fois ajouté, vous pouvez simplement passer le nom de votre processus:
la source