quarta-feira, 27 de setembro de 2023

Separação de variáveis por linha nos /proc/[pid]/environ

O quão frustrante é querer ver as variáveis de ambiente de um processo e termos um caminhão de coisas sem separação por linha. Algo +/- assim:

# cat /proc/818/environ 

MAIL=/var/mail/tomcatLANGUAGE=pt_BR:pt:enUSER=tomcatXDG_SESSION_TYPE=unspecifiedSHLVL=0LD_LIBRARY_PATH=/usr/local/jdk1.6.0_45/jre/lib/amd64/server:/usr/local/jdk1.6.0_45/jre/lib/amd64:/usr/local/jdk1.6.0_45/jre/../lib/amd64::/usr/local/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnuHOME=/home/tomcatLOGNAME=tomcatJOURNAL_STREAM=9:24781_=/usr/local/tomcat/bin/startup.shXDG_SESSION_CLASS=backgroundXDG_SESSION_ID=c1PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binRODA_PRIORIDADE=falseJAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xmx12g -XX:MaxPermSize=2g -javaagent:/usr/local/tomcat/glowroot/glowroot.jar -Dglowroot.collector.address=10.10.10.10:8181LANG=pt_BR.UTF-8SHELL=/bin/bashJAVA_HOME=/usr/local/javaPWD=/RODA_CRONOLOGICO=true

Conforme man (man 5 proc) a separação existe e é o byte com null (\0). Agora é só transformar usando tr de \0 para \n.

Abaixo exemplo mesmo processo acima

# cat /proc/818/environ | tr '\0' '\n'

MAIL=/var/mail/tomcat

LANGUAGE=pt_BR:pt:en

USER=tomcat

XDG_SESSION_TYPE=unspecified

SHLVL=0

LD_LIBRARY_PATH=/usr/local/jdk1.6.0_45/jre/lib/amd64/server:/usr/local/jdk1.6.0_45/jre/lib/amd64:/usr/local/jdk1.6.0_45/jre/../lib/amd64::/usr/local/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu

HOME=/home/tomcat

LOGNAME=tomcat

JOURNAL_STREAM=9:24781

_=/usr/local/tomcat/bin/startup.sh

XDG_SESSION_CLASS=background

XDG_SESSION_ID=c1

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

INVOCATION_ID=0b4cbc9232ed45f3a184861925814cc7

XDG_RUNTIME_DIR=/run/user/1005

RODA_PRIORIDADE=false

JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xmx12g -XX:MaxPermSize=2g -javaagent:/usr/local/tomcat/glowroot/glowroot.jar -Dglowroot.collector.address=10.100.7.130:8181

LANG=pt_BR.UTF-8

SHELL=/bin/bash

JAVA_HOME=/usr/local/java

PWD=/

RODA_CRONOLOGICO=true


E temos saída mais legível. ;)

Como em linux há diversas formas de fazer a mesma coisa. Também pode ser com xargs (xargs -0 -L1 -a /proc/818/environ)

Nenhum comentário:

Postar um comentário

Dúvidas ou sugestões? Envie seu comentário.