今天参考网上的例子配置了一个weblogic的开机自启动,结果weblogic启动了,只是有个业务系统需要读取硬盘上的一个配置文件,总是读取不到,报nullpointexception。
后来发现在启动文件中 切换用户时,只切换了用户,没有切换用户的环境变量。
su username 改为 su - username。
改好后,问题解决了,可以读取配置文件了,但又发现了另一个问题,总是报一个数据库的错误,但启动Linux后,只要把那个自启动服务 restart一下,就没错误了。分析可能是这个自启动服务加载顺序的问题,导致的。于是将加载顺序加大
# chkconfig: 345 20 80
改为
# chkconfig: 345 20000 80
哈哈,问题解决了!坑多啊!!!
下边附上整个脚本:
#!/bin/bash
# chkconfig: 345 20000 80
# description: Weblogic Server auto start/stop script.
# /etc/rc.d/init.d/weblogic
# Please edit the variable
export BEA_BASE=/home/oracle/Oracle/Middleware
export BEA_HOME=$BEA_BASE/user_projects/domains/base_domain
export BEA_LOG=$BEA_HOME/weblogic.log
export PATH=$PATH:$BEA_HOME
BEA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $BEA_HOME/startWebLogic.sh -o ! -d $BEA_HOME ]
then
echo "WebLogic startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
case "$1" in
start)
echo -n "Starting WebLogic,log file $BEA_LOG: "
touch /var/lock/weblogic
su - $BEA_OWNR -c "cd ${BEA_HOME}; nohup ./startWebLogic.sh > $BEA_LOG 2>&1 &"
echo "OK"
;;
stop)
echo -n "Shutdown WebLogic: "
rm -f /var/lock/weblogic
su - $BEA_OWNR -c "cd ${BEA_HOME}/bin; ./stopWebLogic.sh >> $BEA_LOG"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
配置开机自启动服务
oracle 用户登录
在/home/oracle/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/
下创建一个目录 security
security目录中创建boot.properties文件写入启动的用户名密码(就两行)。
<!--[endif]-->
username=weblogic
password=weblogic1
<!--[endif]-->
root用户登录
将文件 自启动脚本 放到/etc/rc.d/init.d/下.
授权
chmod 777 /etc/rc.d/init.d/自启动脚本名称
执行命令
chkconfig --add 自启动脚本名称
再执行
service 自启动脚本名称 start 看是否启动成功。如果不报错的话,再执行
ps -ef|grep java 看是否有weblogic相关信息