GNU/Linux >> Tutoriales Linux >  >> Linux

pd:¿Manera limpia de obtener solo procesos principales?

/usr/bin/pgrep -o <process_name>

donde '-o' es el más antiguo (el menos iniciado recientemente) de los procesos coincidentes


Otra solución (desde aquí):

ps -ocommand= -p $PPID | awk -F/ '{print $NF}' | awk '{print $1}'

Después de discutir con @netcoder sobre los comentarios de su respuesta, usó un buen truco:D
Usando f el ps siempre tendrá al padre arriba, lo cual es genial.

Esto debería funcionar:

$ ps hf -opid -C <process> | awk '{ print $1; exit }'

como menciono en los comentarios, esto devolverá el pid de un solo proceso.

Yo iría con:

ps rf -opid,cmd -C <process-name> | awk '$2 !~ /^[|\\]/ { print $1 }'

es decir:

  • lista de procesos en ejecución r (o e si lo quieres todo)
  • junto con gráfico padre/hijo f
  • muestra solo el pid y el nombre del comando -opid,cmd
  • solo para el proceso dado -C <process>

y luego

  • si el segundo campo, que es el comando (-opid,cmd ) - no comienza con un \ o | entonces es un proceso principal, así que imprima el primer campo, que es el pid.

prueba sencilla:

$ ps f -opid,cmd -Cchromium
  PID CMD
 2800 /usr/lib/chromium/chromium --type=zygote --enable-seccomp-sandbox
 2803  \_ /usr/lib/chromium/chromium --type=zygote --enable-seccomp-sandbox
 2899      \_ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/ConnnectB
 2906      |   \_ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/Connn
 [  ... snip ... ]
 2861      \_ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/ConnnectB
 2863          \_ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/Connn
 2794 /usr/lib/chromium/chromium --enable-seccomp-sandbox --memory-model=low --purge-memory-button --disk-cache-dir=/tmp/chromium
 2796  \_ /usr/lib/chromium/chromium --enable-seccomp-sandbox --memory-model=low --purge-memory-button --disk-cache-dir=/tmp/chromium
 3918  \_ /usr/lib/chromium/chromium --type=gpu-process --channel=2794.45.1891443837 --gpu-vendor-id=0x10de --gpu-device-id=0x0611 --gpu-driver-version -
25308  \_ [chromium] <defunct>
31932  \_ /usr/lib/chromium/chromium --type=plugin --plugin-path=/usr/lib/mozilla/plugins/libflashplayer.so --lang=en-US --channel=2794.1330.1990362572


$ ps f -opid,cmd -Cchromium | awk '$2 !~ /^[|\\]/ { print $1 }'
PID
2800
2794

$ # also supressing the header of ps (top line 'PID') -- add 'h' to ps
$ ps hf -opid,cmd -Cchromium | awk '$2 !~ /^[|\\]/ { print $1 }'
2800
2794

Linux
  1. ¿La diferencia entre /opt y /usr/local?

  2. ¿Cómo activar una pestaña particular de Chrome a través de Bash?

  3. gcc - /usr/bin/ld error:no se puede encontrar <library> en /usr/local/lib aunque ldconfig lo incluye en la lista y la ruta se agregó a ld.so.conf

  4. ¿Por qué poner otras cosas que no sean /home en una partición separada?

  5. Diferencia entre /bin y /usr/bin

/usr/lib/x86_64-linux-gnu/libstdc++.so.6:versión CXXABI_1.3.8' no encontrada

cmake --version apunta a /usr/bin/cmake mientras que cmake apunta a /usr/local/bin

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

¿Cuáles son los significados de /usr/sbin, /usr/local/sbin y /usr/local/bin?

Se movió el contenido de /bin a /usr/bin, ¿es posible deshacerlo?

CentOS /usr/local/lib todo el sistema $LD_LIBRARY_PATH?