4 votos

Obtener una lista de procesos en ejecución actualmente

Me gustaría obtener una lista de todas las aplicaciones que se ejecutan actualmente en mi máquina mediante la línea de comandos. Debe ser similar a lo que usted consigue cuando usted abra el Monitor de Actividad y seleccione la opción para guardar la lista.

Me di cuenta de que el ps -a comando hace algo similar, pero se corta los nombres de los procesos.

Sólo estoy interesado en el nombre de los procesos, así que no necesitan todas las columnas que la Actividad de las salidas de Monitor.

Actualización: yo debería haber sido más claro... no quiero que la ruta de acceso completa para el proceso que se muestra. Sólo quiero que el nombre del proceso, tal como aparece en el Monitor de Actividad. Por ejemplo, ps hace lanchd a mostrarse como /sbin/launchd más que como se muestra en el Monitor de Actividad (es decir, sólo lanchd). Este es un problema porque los procesos que tienen muy largos caminos terminan siendo truncado (dependiendo de mi terminal tamaño de la ventana), y ni siquiera puedo ver el nombre de proceso.

2voto

Mykroft Puntos 4292

Comando derecho, banderas mal.

  • Uso ps -Ao comm si quieres nombres de proceso solamente.
  • Uso ps -Ao command si quieres nombres de proceso con argumentos.

2voto

ephsmith Puntos 1627

Usted ha mencionado que le gustaría guardar en un archivo. En el caso más simple (el que más les preocupan), el uso de

ps ax > /path/to/outfile.txt

que va a imprimir una lista de todos los procesos en ejecución (con el nombre completo) para el archivo designado por el camino. El ">" redirige la salida impresa (en el modo sobrescribir) para el archivo. Simplemente la emisión de ps ax imprimirá en pantalla.

Sugerencia: Si usted no tiene ganas de escribir un directorio completo, arrastre una carpeta a la terminal para obtener la ruta de acceso para usted y para completar manualmente con el nombre de el archivo

En caso de que usted termina quería algunas de las otras columnas en algún momento... También, revise la página man para ps escribiendo man ps en la línea de comandos y buscar otras opciones. He aquí otro ejemplo que imprime la cpu, uso de memoria y para cada proceso (en porcentajes) seguido por el comando (proceso):

ps ax -o %cpu -o %mem -o command > /path/to/outfile.txt

Uso

# Sort by cpu usage with the 'r' option
ps arx -o %cpu -o %mem -o command > /path/to/outfile.txt

# Sort by memory usage with the 'm' option
ps arm -o %cpu -o %mem -o command > /path/to/outfile.txt

EDITAR

Para imprimir sólo el comando, hay probablemente más duradero enfoques, pero en un apuro me acababa de hacer lo siguiente. Usted probablemente notará un poco de información antigua cerca del final relativa a las cadenas que no estaban pensados para basename (como -bash), pero el resto de lo que usted desea estará allí con este rapidito.

ps ax -o comm | xargs -I % basename % > /path/to/outfile.txt

NOTA: Algunos de los procesos que están en ejecución, no son necesariamente los nombres de ejecutables. Podría ser una recta llamada a sh con una cadena de comandos que siguen.

2voto

Fuzzy Purple Monkey Puntos 702
ps -axc -o comm
  • -amuestra los procesos de todos los usuarios (o root)
  • -xincluye los procesos que no tienen un terminal de control
  • -o commsalidas de comando caminos o nombres
  • -c-o commnombres de salida sólo

tell app "System Events" to name of application processesenumerar sólo los procesos lanzados desde un paquete de aplicación.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X