más rápido: grep PPid status |cut -f2como en time(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done); preguntarse si hay algo aún más rápido?
Acuario Power
1
@AquariusPower Como preguntas, fgrep es más rápido que grep. fgrep PPid status |cut -f2
jbo5112
sed es mucho más rápido que grep and cut:sed -rn '/PPid/ s/^.*:\s+// p' < status
El =signo no es necesario, al menos en OS X 10.8.2.
jtbandes
55
@jtbandes: el signo igual como se usa aquí suprime la salida de la línea de encabezado ( Linux y OS X ).
Dennis Williamson el
13
Esta es una de esas cosas que aprendo, olvido, vuelvo a aprender, repito. Pero es útil. La bandera 's' del comando pstree muestra un árbol con una hoja en N:
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'es todo lo que necesitas. (Es muy raro que las herramientas de Unix hagan if [ -z ]; then readlo mismo)
Grawity
@grawity Ayuda a hacer cosas comoecho $$ | ppid | ppid | ppid
Vi.
2
Uso inútil de gato de UUOC
Felipe Alvarez
@FelipeAlvarez, Mis manos no están acostumbradas a escribir < /some/file grep | grep | ....
Eso no le da al PID padre, que es lo que solicitó el OP.
Dennis Williamson
1
Corre topcon las opciones que quieras, como -u username and -p PID.
Y mientras topestá trabajando f, presione , muestra una lista de opciones que desea mostrar en la topsalida, y los parámetros que se muestran se mostrarán en letras MAYÚSCULAS y los parámetros que se muestran o no se mostrarán en letras pequeñas.
Entonces, al ingresar la letra antes del parámetro, puede habilitarla o deshabilitarla. Para la ID del proceso principal, debe ingresar by luego presionar Enter, se mostrará el PPID en la salida superior.
grep PPid status |cut -f2
como entime(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done)
; preguntarse si hay algo aún más rápido?fgrep PPid status |cut -f2
sed -rn '/PPid/ s/^.*:\s+// p' < status
Respuestas:
Línea de comando:
Función:
Alias (una función es preferible ):
Guión:
Si no se proporciona ningún PID a la función o al script, por defecto muestran el PPID del proceso actual.
Para usar el alias, se debe proporcionar un PID.
fuente
=
signo no es necesario, al menos en OS X 10.8.2.Esta es una de esas cosas que aprendo, olvido, vuelvo a aprender, repito. Pero es útil. La bandera 's' del comando pstree muestra un árbol con una hoja en N:
fuente
El padre pid está en la variable de shell PPID, entonces
fuente
$PPID
solo resolvió el problema que tenía que Google sugirió esta página como respuesta.Para imprimir los identificadores principales (
PPID
) de todos los procesos, use este comando:Para el proceso sola, sólo tiene que pasar el PID, como:
ps j 1234
.Para extraer solo el valor, filtre la salida por
awk
, como:Para enumerar los PID de todos los padres, use
pstree
(instálelo si no lo tiene):Para obtener el PID primario del proceso actual, use
echo $$
.fuente
pstree
es el mejor que he visto aquí.ps j
es genial porque está disponible en muchas distribuciones y es fácilmente composableLeer / proc / $ PID / estado. Se puede escribir fácilmente:
fuente
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'
es todo lo que necesitas. (Es muy raro que las herramientas de Unix haganif [ -z ]; then read
lo mismo)echo $$ | ppid | ppid | ppid
< /some/file grep | grep | ...
.grep /some/file
En Linux:
fuente
Un ejemplo un poco más complejo que verifica el comando de un padre que inició el proceso actual Cambie comm = a cmd = para ver el comando completo
fuente
Aquí hay una solución rápida que también debería funcionar:
fuente
Corre
top
con las opciones que quieras, como-u username and -p PID
.Y mientras
top
está trabajando f, presione , muestra una lista de opciones que desea mostrar en latop
salida, y los parámetros que se muestran se mostrarán en letras MAYÚSCULAS y los parámetros que se muestran o no se mostrarán en letras pequeñas.Entonces, al ingresar la letra antes del parámetro, puede habilitarla o deshabilitarla. Para la ID del proceso principal, debe ingresar by luego presionar Enter, se mostrará el PPID en la salida superior.
fuente
htop
usted puede configurar laPPID
columna.