一般需要知道你查看的进程的pid
执行命令:ps,找到你查看的pid号。或者执行:pidof 进程的执行命令。
知道pid号之后有两种方法:
1.ps eww -p pid ,此种方式只支持在pc系统上。所以arm板上不支持此种方法
2: tr \\0 \\n </proc/pid/environ 此种方式平台都支持
执行之后就可以看到当前进程或者说是当前shell环境下配置的环境变量,就可以知道这个环境下配置的环境变量是否成功。
之前项目中有查看过后台运行的qt程序的环境变量,但是当时概念不清楚,直接在当前控制台上直接用export,env或者set查看配置的qt的环境变量,但是就是没有脚本中配置的qt的环境变量,感觉很奇怪,可是arm板启动时配置的自启动qt后台程序是可以成功运行的,如果我在当前控制台上直接运行同一个qt程序,就发现qt程序运行不正常,触摸屏和鼠标都不可用,所以表现出来qt的界面不可以操作,看上去像只是显示了一张图。
后来经过调查问题就出现在配置shell环境是在当前shell环境有效,还是在子shell中有效,在当前shell中有效的话,在当前shell中运行的应用程序才能得到此配置的环境变量,别的shell中运行的应用程序是不能得到此配置的环境变量的。
qt运行的例子如下
1:在/etc/init.d/rcS脚本最后
#/bin/qtopia & %
/bin/qt4& //加&表示/bin/目录下直接后台运行qt4脚本(直接运行表示在新的shell环境中(子shell环境))
echo " " > /dev/tty1
echo "Starting Qtopia, please waiting..." > /dev/tty1
2:在qt4中
#!/bin/sh
. setqt4env //点式运行shell脚本,表示在当前shell环境运行shell脚本,所以运行qt4和setqtenv是同一个shell环境,但是是rcS产生的新shell环境(rcS的子shell环境)
export HOME=/root
cd /usr/local/Trolltech/QtEmbedded-4.8.5-arm/demos/embedded/fluidlauncher
./fluidlauncher -qws //但此子shell下运行
hotplug
所以出现如果按arm板刚开始配置的开启自启动qt程序,此qt应用程序就在此shell环境下。如果我在arm板调试控制台运行qt程序的话,就找不到qt的配置环境变量,因为此qt运行的shell环境不同与后台qt的shell环境。
所以在当前控制台调试qt程序,就必须在此shell中手动运行qt4脚本,以使环境变量在此shell下有效
一般qt程序在pc上模拟成功,在arm板上没有提示出错,就是显示出现问题,一般都是环境变量配置有问题。
同样有一个问题。
我在控制台shell环境下配置了QTDIR='/usr/local/Trolltech/QtEmbedded-4.8.5-arm',所以我在控制台下运行自己的qt程序是正常的