如何查看特定进程(特定shell环境)配置的环境变量

一般需要知道你查看的进程的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程序是正常的

配置成开机自启动pt程序,由于配置的QTDIR='/usr/local/Trolltech/QtEmbedded-4.8.5-arm',是在控制台shell环境下,所以在后台qt运行的后台shell环境下,无法查找到QTDIR,所以自启动qt程序显示就出现问题。

解决方法,是在配置qt后台shell 的配置脚本setqtenv中添加了QTDIR='/usr/local/Trolltech/QtEmbedded-4.8.5-arm',这样自启动qt就正常显示






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值