Tux-comando-terminal-consola-linux

Poder ver el comando completo con el que se lanzó un proceso, el eterno drama al ejecutar ps aux.

root@debian:~# ps 2778
  PID TTY      STAT   TIME COMMAND
 2778 ?        Sl    78:51 /opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.s

Existen varias formas de lograr el cometido y en este artículo explico algunas de las que conozco.

Por defecto, ps corta cada línea de su salida para que coincida con el ancho de pantalla de la consola. Sin embargo, dentro de las opciones de modificación de la salida del comando ps, w o -w permiten ampliar el ancho de la salida.

root@debian:~# ps w 2778
  PID TTY      STAT   TIME COMMAND
 2778 ?        Sl    78:51 /opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.s
h -server -Xms1024m -Xmx5000m -XX:PermSize=384m -XX:Max

Cuando se utiliza dos veces (ww o -ww), el ancho es ilimitado, lo que permite visualizar la línea completa:

root@debian:~# ps ww 2778
  PID TTY      STAT   TIME COMMAND
 2778 ?        Sl    78:51 /opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.s
h -server -Xms1024m -Xmx5000m -XX:PermSize=384m -XX:MaxPermSize=384m -Djava.awt
.headless=true -Duser.language=es -Duser.region=uy -DBuilderQueue_maxSession=3 
-Dsun.lang.ClassLoader.allowArraySyntax=true -Djava.rmi.server.hostname=localho
st -Dsystem.properties.load=false -Djava.net.preferIPv4Stack=true -Djava.endors
ed.dirs=/opt/BostaSoft/app/jboss/lib/endorsed -classpath /opt/BostaSoft/app/jbo
ss/bin/run.jar org.jboss.Main -b 192.168.1.52

De esta forma no perdemos detalle del comando con el que fue lanzado un proceso. Esto es de especial utilidad cuando se utiliza ps con las opciones aux o ef.

Las opciones w y -w funcionan perfectamente tanto en sistemas GNU/Linux como en sistemas FreeBSD.

Existe otro truco simple para lograr el mismo resultado, el cual consiste en redirigir la salida de ps a un visor de archivos como cat, less o more:

root@debian:~# ps 2778 | cat
  PID TTY      STAT   TIME COMMAND
 2778 ?        Sl    78:53 /opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.s
h -server -Xms1024m -Xmx5000m -XX:PermSize=384m -XX:MaxPermSize=384m -Djava.awt
.headless=true -Duser.language=es -Duser.region=uy -DBuilderQueue_maxSession=3 
-Dsun.lang.ClassLoader.allowArraySyntax=true -Djava.rmi.server.hostname=localho
st -Dsystem.properties.load=false -Djava.net.preferIPv4Stack=true -Djava.endors
ed.dirs=/opt/BostaSoft/app/jboss/lib/endorsed -classpath /opt/BostaSoft/app/jbo
ss/bin/run.jar org.jboss.Main -b 192.168.1.52

Esto produce que ps no corte la salida.

Finalmente, cabe recordar que (en los sistemas GNU/Linux) es posible obtener toda la información que presenta ps directamente desde el filesystem /proc. Por ejemplo, para obtener el comando completo:

root@debian:~# cat /proc/2778/cmdline
/opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.sh -server -Xms1024m -Xmx500
0m -XX:PermSize=384m -XX:MaxPermSize=384m -Djava.awt.headless=true -Duser.langu
age=es -Duser.region=uy -DBuilderQueue_maxSession=3 -Dsun.lang.ClassLoader.allo
wArraySyntax=true -Djava.rmi.server.hostname=localhost -Dsystem.properties.load
=false -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/opt/BostaSoft/app/
jboss/lib/endorsed -classpath /opt/BostaSoft/app/jboss/bin/run.jar org.jboss.Ma
in -b 192.168.1.52

De igual forma para obtener el entorno consultando el archivo environ.

Referencias

man ps

 

Fuente: linuxito

¿Quién está en línea?

Hay 3732 invitados y ningún miembro en línea