Parfois, lorsque j'essaie de démarrer Firefox, il est dit "un processus Firefox est déjà en cours d'exécution". Je dois donc faire ceci:
jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451
Ce que j'aimerais, c'est une commande qui ferait tout ça pour moi. Cela prendrait une chaîne d'entrée et grep
pour cela (ou autre) dans la liste des processus, et tuerait tous les processus dans la sortie:
jeremy@jeremy-desktop:~$ killbyname firefox
J'ai essayé de le faire en PHP mais exec('ps aux')
semble ne montrer que les processus qui ont été exécutés avec exec()
dans le script PHP lui-même (donc le seul processus qu'il montre est lui-même.)
pkill -f "Process name"
commande ...Réponses:
Plus d'informations: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
la source
-f
.pkill -U <username>
est assez pratique. J'ai un serveur Web Solaris , le démon de serveur Web réel, est configuré en tant que service avec son propre utilisateur. La spécification par l'utilisateur est donc un moyen simple / facile de déclencher un redémarrage.-f
drapeau pour une solution omnibus.Également possible d'utiliser:
Pour moi, cela a fonctionné parfaitement. C'est ce que je cherchais. pkill ne fonctionne pas avec le nom sans le drapeau.
Lorsque
-f
est défini, la ligne de commande complète est utilisée pour la correspondance de modèle.la source
-f
option est vraiment nécessaire. par exemplepkill -f "EvilWindowsServer.exe"
-f
drapeau pour tuer un processus d'arrière-plan exécutant un script Python.pkill -f -9 PROCESSNAME
Vous pouvez tuer les processus par leur nom avec
killall <name>
Mais si vous ne voyez pas le processus avec
ps aux
, vous n'aurez probablement pas le droit de le tuer ...la source
killall -s KILL firefox
Une alternative un peu plus longue:
la source
La façon la plus simple de procéder consiste à vérifier d'abord que vous obtenez les bons ID de processus avec:
Si le résultat est comme prévu. Aller avec:
la source
Étrange, mais je n'ai pas vu la solution comme celle-ci:
il peut également tuer plusieurs processus (plusieurs pids) comme:
Je préfère
pidof
car il a une sortie sur une seule ligne:la source
kill: invalid number 'pidof myprogram'
. Qu'est-ce qui est mauvais ici?.Tuez tous les processus ayant
snippet
dans le chemin de démarrage. Vous pouvez tuer toutes les applications démarrées à partir d'un répertoire en mettant / répertoire / comme extrait. Ceci est très utile lorsque vous démarrez plusieurs composants pour la même application à partir du même répertoire d'application.* Je préfère pgrep si disponible
la source
grep
.ps ax | awk '/[s]nippet/ { print $1 }' | xargs kill
[s]
fonctionne en termes de non-correspondance avec le processus awk lui-même?[x]y
correspond à la chaîne,xy
mais pas vice versa. Il s'agit d'une FAQ courante. Le lien est vers une page d'il y a plus de 20 ans qui explique cela plus en détail; et c'était déjà une question récurrente.Sur Mac, je ne pouvais pas trouver le pgrep et le pkill.
S'il existe un moyen plus simple de le faire, veuillez le partager.
la source
Utilisation de la
#killall
commande:la source
Pour tuer avec grep:
la source
plus correct serait:
la source
export
une variable que vous n'utiliserez qu'une seule fois dans le même processus?J'utilise normalement la
killall
commande.Vérifiez ce lien pour plus de détails sur cette commande.
la source
Je me posais la même question mais le problème avec les réponses actuelles est qu'elles ne vérifient pas en toute sécurité les processus à tuer donc ... cela pourrait conduire à de terribles erreurs :)) ... surtout si plusieurs processus correspondent au schéma .
Comme avertissement, je ne suis pas un pro de la mer et il y a certainement place à amélioration.
J'ai donc écrit un petit script sh:
la source
Si vous exécutez GNOME, vous pouvez utiliser le moniteur système (Système-> Administration-> Moniteur système) pour tuer les processus comme vous le feriez sous Windows. KDE aura quelque chose de similaire.
la source
La
kill
commande par défaut accepte les noms de commande comme alternative au PID. Voir kill (1) . Un problème qui survient souvent est qu'ilbash
fournit le sienkill
qui accepte les numéros de travail, commekill %1
, mais pas les noms de commande. Cela entrave la commande par défaut. Si la première fonctionnalité vous est plus utile que la seconde, vous pouvez désactiver labash
version en appelantenable -n kill
Pour plus d'informations, voir
kill
etenable
entrées dans bash (1) .la source
enable -n kill
?enable kill
kill -9 $ (ps aux | grep -e myprocessname | awk '{print $ 2}')
la source
la source
awk oneliner, qui analyse l'en-tête de la
ps
sortie, vous n'avez donc pas besoin de vous soucier des numéros de colonne (mais des noms de colonne). Soutenir l'expression régulière. Par exemple, pour tuer tous les processus, quel nom exécutable (sans chemin) contient le mot "firefox" essayezla source