Para buscar un proceso que pueda usar ps
con grep
.
Por ejemplo para buscar firefox
ps aux | grep firefox
¿Cómo obtener la misma respuesta sin usar grep
?
fuente
Para buscar un proceso que pueda usar ps
con grep
.
Por ejemplo para buscar firefox
ps aux | grep firefox
¿Cómo obtener la misma respuesta sin usar grep
?
El pgrep
comando, y su hermano pkill
, existe precisamente para este propósito:
pgrep firefox
enumerará todos los procesos cuyos comandos coinciden firefox
pgrep -f firefox
enumerará todos los procesos cuyas líneas de comando completas coincidan firefox
pgrep -x firefox
enumerará todos los procesos cuyos comandos coinciden exactamente firefox
Y, naturalmente, pgrep
se excluirá del combate, por lo que no se necesita ninguno de los grep
rituales asociados ps | grep
.
El otro conjunto de herramientas para esto son los comandos pidof
y killall
. Estos no son tan flexibles como pgrep
y pkill
.
pidof firefox
enumerará los procesos cuyo comando es firefox
ps -fC process-name
ejemplo:
ps -fC firefox
de man ps
-C cmdlist Select by command name.
This selects the processes whose executable name is
given in cmdlist.
-f Do full-format listing. This option can be combined
with many other UNIX-style options to add additional
columns. It also causes the command arguments to be
printed. When used with -L, the NLWP (number of
threads) and LWP (thread ID) columns will be added. See
the c option, the format keyword args, and the format
keyword comm.
ps -C
indicador BSD se comporta de manera completamente diferente: "Cambia la forma en que se calcula el porcentaje de CPU"
top
le permite buscar cadenas cuando toca mayúsculas L
; el proceso se resaltará y use las teclas de flecha hacia arriba y hacia abajo para desplazarse por la lista de procesos. Del mismo modo, el
htop
comando permite resaltar un proceso particular cuando golpeas /
. Y \
filtrará todos los procesos con una cadena particular en el nombre.
Para aquellos que gustan awk, aquí hay un oneliner awk: ps -eF | awk '/process-name/ {print $11}'
. Con el ps -eF
nombre del proceso siempre está en la undécima columna. Alternativamente, si lo hace ps -eF | awk '{print $11}' | sort
, obtendrá una lista ordenada de nombres de procesos, ordenados alfabéticamente. Conéctelo al less
comando solo para ver la larga lista de archivos más fácilmente.
Un truco genial
$ps -ejH
Obtendrás todos los procesos con nombres
exmple:
1747 568 568 ? 00:00:00 colord
1833 1832 1832 ? 00:00:00 gnome-keyring-d
2263 568 568 ? 00:00:00 udisksd
2311 2311 2311 ? 00:00:00 cupsd
2315 2315 2311 ? 00:00:00 dbus
Redirige o copia el resultado a un archivo y luego ábrelo nano
, presiona Ctrl+ W
y puedes buscar el nombre que deseas.
También puede usar htop
y luego presionar F4 para filtrar los resultados con una cadena coincidente definida por el usuario. También tiene una función de búsqueda personalizada disponible presionando F3.
Si el problema son dos procesos, solo puede usar grep:
grep firefox /proc/*/cmdline
Acabo de leer este ps alias en el blog de Lennart Poettering. La salida está de acuerdo con la crianza del grupo de control systemd:
alias psc='ps xawf -eo pid,user,cgroup,args'
ps/grep
solución funciona tan bien.ps -n <process name>
, respondería a su necesidad.ps -n firefox
es un poco más corto queps | grep firefox
.ps
ya puede filtrarpid
o procesar una identificación de usuario, por lo que es una pregunta razonable filtrar por nombre de proceso.