[實踐Ok]Linux下查看進程(程式)啟動時的環境變數

來源:互聯網
上載者:User

背景:
      因最近試安裝Linux下的jira,有一個中文外掛程式安裝後,一旦設定開機啟動後,它是英文,而在終端再重新啟動一次後呢,似乎外掛程式生效,它又恢複為正常中文介面,我首先想這這涉及到一個環境變數的問題,因為在我設定開機啟動的服務時用service jira start出現找不到一些變數,如:擷取不到java的home目錄,提示找不到,為此,我加上了java的環境變數開機啟動Ok了,但是英文,我對英文認識少,但還是想用中文,否則外掛程式就等於白安了。

為此,需要弄清這兩者的環境變數的區別在哪兒,如何查看一個運行程式的環境變數如下兩種方法:

方法一:通過擷取進程編號得到環境變數:
root@192.168.98.128:~# ps aux|grep jira
root      2341 25.3 55.0 758544 384956 pts/0
得到PID為:2341
查看該進程的環境變數命令如下:
ps eww -p 2341   //得到一大串的環境變數

方法二,查看proc目錄下的環境資訊並分離出環境變數
tr '\0' '\n' < /proc/2341/environ

經diff區分發現後得出有兩個點不同:
(1)TERM=linux  TERM=xterm  //這個可能是我在用SecureCRT時設定的是xterm設定時把這個變數帶入進去了(在:會話選項->終端->模擬->終端:xterm)
(2)LANG=en_US.UTF-8  LANG=zh_CN.UTF-8  //這兒是一個終端編碼的問題:en_US 和 zh_CN還是有區別的,這兒有可能就是問題所在。

關於LANG的問題,參考我寫的:http://www.justwinit.cn/post/5425/
現在這樣處理:
export LANG=zh_CN.UTF-8

把這一行放在: /etc/init.d/jira   這個啟動的命令前一行即可。
export LANG=zh_CN.UTF-8
nohup /usr/local/jira/bin/shutdown.sh  > /dev/null 2>&1 &                                        |~                            

26 usleep 100000                                                                                    |~                            

27 nohup /usr/local/jira/bin/startup.sh   > /dev/null 2>&1 &  

經過上述修改後,果然成功,大功告成,猜想正確,得證。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
附錄疑問:nohup執行的shell指令碼,剛設定的全域變數不能傳遞到指令碼中使用嗎?
export LOGFILE #這裡要匯出為環境變數才能被123.sh進程使用
nohup 123.sh &
================================================
當然也可以不必export,只要source 指令碼就行了,全域變數就被設定到當前shell進程裡了,如果希望它成為環境變數以便被之後的shell子進程使用就要export了。

我在思考:為何這個jira啟動時沒有去讀這個檔案的值呢?奇怪,難道是自己的jira版本太低了麼。
vi /etc/sysconfig/i18n

通過開機啟動和終端運行時的環境變數的不同,進而匹配成相同,這個問題及得到瞭解決。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面附加:開機啟動後的環境變數情況和終端啟動的環境變數區別產生的原因:
首先清楚在linux裡面無論是在命令列輸入還是系統設定等都是屬於shell。(開機啟動設定在(/etc/init.d/rcS中)、配置系統內容變數的shell位於/etc/profile、配置使用者級環境變數的shell為~/.bashrc—每次啟動終端都執行;或~/.bash_profile—會話開始時執行)。把庫的路徑添加到環境變數LD_LIB_PATH中即可找到。
備忘:
1、 在命令列編輯時可用emacs的命令進行編輯,如ctrl-b表示退後一步;ctrl-a表示游標移到最前等。
2、 可以同時輸入幾個命令順序執行:command1 ; command2 或 command1 && command2(當command1執行成功時再執行command2)。
3、 後台運行和程式debug輸出重新導向: 在終端運行一個程式後可以用ctrl-z掛起然後輸入bg命令使其後台運行(當然也可直接在後面加&)。Command & > /dev/null &將不會再終端輸出調試資訊。
4、 輸出重新導向: (1)多個命令重新導向,| 如 | grep text | less等,(2)重新導向至檔案 command > file(把file檔案內容換成command的輸出) 或 command >> file(直接把command的輸出加在file檔案後面)。
5、 改變提示符: 通過設定PS1=”something。
6、 用alias newcommand=”oldcommand”設定命令的別名。
1.2. 6410開機啟動和環境變數設定
1、 開機啟動程式加在shell檔案/etc/init.d/rcS檔案中
2、 環境變數添加在/etc/profile檔案(PATH和LD_LIBRARY_PATH)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.