昨天,一個(gè)老同事問(wèn)起這樣一個(gè)問(wèn)題,起因是他們的系統(tǒng)由于某些原因原有的部分模塊不能運(yùn)行在新的jdk下,所以需要啟動(dòng)兩個(gè)resin并使用不同jdk。由于是要開機(jī)自動(dòng)啟動(dòng),因此啟動(dòng)的賬號(hào)還需要是同一個(gè)。這樣常用使用兩個(gè)賬號(hào)設(shè)置各自的JAVA_HOME的方法,就不可行。同事說(shuō)google了一下沒(méi)有找到方法,倒是tomcat有類似的解決方案。
自從兩個(gè)月前加入新公司后,就基本沒(méi)有再碰過(guò)web了,下載了一個(gè)resin的包,感覺(jué)都有些陌生了。
翻了一下conf/resin.conf文件,沒(méi)有找到類似的設(shè)置。
一下沒(méi)有想到方法,后來(lái)開會(huì),干活,下班也就暫時(shí)放下了。
今天早上上班,想起來(lái),又去看看了。看到了熟悉的httpd.sh腳本,恩,shell腳本?眼前一亮,似乎可以從這里下手。
馬上測(cè)試了一下,似乎真的可行,方案如下:
a.sh:
#! /bin/sh
export JAVA_HOME=/abc/123/home/a
echo $JAVA_HOME
b.sh:
#! /bin/sh
export JAVA_HOME=/abc/123/home/a
echo $JAVA_HOME
然后執(zhí)行./a.sh ; ./b.sh;env | grep JAVA_HOME,結(jié)果如下:
/abc/123/home/a /abc/123/home/b JAVA_HOME=/usr/lib/java
恩,ok,在shell中設(shè)置環(huán)境變量只對(duì)該shell生效,不影響其他。
按照這個(gè)思路,只要修改兩個(gè)resin的httpd.sh腳本,加入對(duì)JAVA_HOME的不同設(shè)置就可以了搞定這個(gè)問(wèn)題,呵呵,最后的方法還是蠻簡(jiǎn)單的。