plus rapide: grep PPid status |cut -f2comme dans time(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done); me demande s'il y a quelque chose d'encore plus rapide?
Aquarius Power
1
@AquariusPower Puisque vous demandez, fgrep est plus rapide que grep. fgrep PPid status |cut -f2
jbo5112
sed est bien plus rapide que grep et coupe:sed -rn '/PPid/ s/^.*:\s+// p' < status
Le =signe n'est pas nécessaire, du moins sous OS X 10.8.2.
Jtbandes
5
@jtbandes: le signe égal utilisé ici supprime la sortie de la ligne d'en-tête ( Linux et OS X ).
Dennis Williamson
13
C'est l'une de ces choses que j'apprends, oublie, réapprends, répète. Mais c'est utile. Le drapeau 's' de la commande pstree montre un arbre avec une feuille en N:
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'c'est tout ce dont vous avez besoin. (Il est très rare que les outils Unix fassent la if [ -z ]; then readchose.)
grawity
@grawity Ça aide de faire des choses commeecho $$ | ppid | ppid | ppid
Vi.
2
UUOC utilisation inutile du chat
Felipe Alvarez
@ FelipeAlvarez, Mes mains ne sont pas habituées à taper < /some/file grep | grep | ....
Exemple un peu plus complexe qui vérifie la commande d'un parent qui a démarré le processus en cours Modifiez comm = en cmd = pour afficher la commande complète.
Cela ne donne pas le PID parent, ce que l’opérateur a demandé.
Dennis Williamson le
1
Exécuter topavec toutes les options que vous voulez, comme -u username and -p PID.
Et pendant que vous topappuyez sur f, vous obtenez une liste des options que vous souhaitez afficher en topsortie. Les paramètres affichés sont affichés en lettres majuscules et les paramètres affichés ou non en petites lettres.
Donc, en entrant la lettre avant le paramètre, vous pouvez l'activer ou le désactiver. Pour l'ID de processus parent, vous devez entrer bpuis appuyer sur Enter, le PPID s'affichera dans la sortie supérieure.
grep PPid status |cut -f2
comme danstime(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done)
; me demande s'il y a quelque chose d'encore plus rapide?fgrep PPid status |cut -f2
sed -rn '/PPid/ s/^.*:\s+// p' < status
Réponses:
Ligne de commande:
Une fonction:
Alias (une fonction est préférable ):
Scénario:
Si aucun PID n'est fourni à la fonction ou au script, le PPID du processus en cours est affiché par défaut.
Pour utiliser l'alias, un PID doit être fourni.
la source
=
signe n'est pas nécessaire, du moins sous OS X 10.8.2.C'est l'une de ces choses que j'apprends, oublie, réapprends, répète. Mais c'est utile. Le drapeau 's' de la commande pstree montre un arbre avec une feuille en N:
la source
Le pid parent est dans la variable shell PPID, donc
la source
$PPID
n’a fait que résoudre le problème que Google avait suggéré à cette page de répondre.Pour imprimer les identifiants parents (
PPID
) de tous les processus, utilisez cette commande:Pour le processus simple, il suffit de passer le PID, comme:
ps j 1234
.Pour extraire uniquement la valeur, filtrez la sortie
awk
comme suit:Pour lister les PID de tous les parents, utilisez
pstree
(installez-le si vous ne l'avez pas):Pour obtenir le PID parent du processus en cours, utilisez
echo $$
.la source
pstree
est le plus beau que j'ai vu ici.ps j
est génial car il est disponible sur de nombreuses distributions et est facilement composableLisez / proc / $ PID / status. Peut être facilement scripté:
la source
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'
c'est tout ce dont vous avez besoin. (Il est très rare que les outils Unix fassent laif [ -z ]; then read
chose.)echo $$ | ppid | ppid | ppid
< /some/file grep | grep | ...
.grep /some/file
Sous Linux:
la source
Exemple un peu plus complexe qui vérifie la commande d'un parent qui a démarré le processus en cours Modifiez comm = en cmd = pour afficher la commande complète.
la source
Voici une solution rapide qui devrait également fonctionner:
la source
Exécuter
top
avec toutes les options que vous voulez, comme-u username and -p PID
.Et pendant que vous
top
appuyez sur f, vous obtenez une liste des options que vous souhaitez afficher entop
sortie. Les paramètres affichés sont affichés en lettres majuscules et les paramètres affichés ou non en petites lettres.Donc, en entrant la lettre avant le paramètre, vous pouvez l'activer ou le désactiver. Pour l'ID de processus parent, vous devez entrer bpuis appuyer sur Enter, le PPID s'affichera dans la sortie supérieure.
la source
htop
vous pouvez configurer laPPID
colonne.