Cuando lo hago ps -ef|grep python
me sale lo siguiente:
myusername 4492 2994 0 10:32 pts/0 00:00:01 /home/myusername/.virtualenvs/myproject/bin/ipython manage.py runserver
root 6665 1 0 10:42 ? 00:00:00 /usr/bin/python /usr/lib/system-service/system-service-d
myusername 14051 13497 0 11:28 pts/7 00:00:00 grep --color=auto python
¿Cómo obtengo solo el usuario que ejecuta el proceso, el pid y el comando se ejecutan para el proceso como en el siguiente resultado?
myusername 4492 /home/myusername/.virtualenvs/myproject/bin/ipython manage.py runserver
root 6665 /usr/bin/python /usr/lib/system-service/system-service-d
ps --fields="user pid command"
Respuestas:
Supongo que estás buscando el argumento -o:
Entonces el comando que deseas sería (Ubuntu):
bajo OpenSolaris el comando es:
fuente
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
man ps
. Tal vez la sintaxis es ligeramente diferente en su sistema.ps -o uid,pid,cmd -e|grep python
ps -o user,pid,cmd -e|grep '[p]ython'
El más simple probablemente sería:
De esa manera, obtienes todo directamente
ps
y no necesitas analizar nada.Desde la
ps
página del manual:La
-C
opción funcionará si está ejecutandopython
interactivamente, no si python está ejecutando un script. En ese caso deberías usar-C scriptname.py
en su lugar.fuente
Mi versión de PS es diferente, por lo que puede requerir algunos ajustes, pero puede usar cortar (y posiblemente tr dependiendo de lo que esté tratando de lograr), por ejemplo, algo como
Proporcionará los caracteres 1-16 y 50 en adelante de cada línea de su declaración ps. (Sus números reales probablemente necesitarán un poco de masaje).
Otra forma de hacerlo (pero perderá el formato) podría ser
Lo cual comprimirá el espacio en blanco en el comando ps, luego tomará los campos 1,2 y 8 en adelante y los mostrará.
fuente
Ejemplo:
Explicación:
-e
todos los procesos-o
formato definido por el usuariouser,pid,cmd
Mostrar usuario, ID de proceso, columnas de comandoNota: si usa
-f
con lo-e
que otros han sugerido, puede obtener errores. Esto se debe a que ambos parámetros controlan el formato de salida y solo uno de ellos debe usarse:fuente