Cuando lo hago ps -ef|grep pythonme 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.htmlman ps. Tal vez la sintaxis es ligeramente diferente en su sistema.ps -o uid,pid,cmd -e|grep pythonps -o user,pid,cmd -e|grep '[p]ython'El más simple probablemente sería:
De esa manera, obtienes todo directamente
psy no necesitas analizar nada.Desde la
pspágina del manual:La
-Copción funcionará si está ejecutandopythoninteractivamente, no si python está ejecutando un script. En ese caso deberías usar-C scriptname.pyen 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:
-etodos los procesos-oformato definido por el usuariouser,pid,cmdMostrar usuario, ID de proceso, columnas de comandoNota: si usa
-fcon lo-eque 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