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