说明:
1.Linux环境VSB随操作系统自启动做法:
一般情况下是这样做的,
在文件/etc/rc.local中增加VSB的启动脚本即可;
(或者在/etc/rc.d/rc.local增加同样的内容),如图1所示,
图1
操作简单,上手极快。
部署组的同学已经配置过多次多台,效果显著。
2.个人操作遇到的偶然问题:
操作方法如上1条所说,重启操作系统,结果VSB没有完全启动起来,确切的说是apache和tomcat已经启动了,但是pgsql却没有启动,网站打开自然是那个悲催的空指针白页面。(杨凌网站群也同样配置,结果重启也是数据库pgsql不能启动,进入系统以后执行startup.sh却能正常启动;)通过与部署组同事的沟通和了解,个人发现有所不同的参考是操作系统的类型,他们以前处理的系统都在CentOS 5.5左右,杨凌网站群的服务器操作系统是CentOS5.6 x64,通过在公司内部同版本的CentOS 5.6 x64系统测试发现,也是pgsql不能随机启动。非常幸运,这样的问题可以重现,非常不幸,我一时没有想到如何去解决。 只好从startup.sh脚本中,分离出pgsql启动部分的脚本,多次试验发现问题在:
sudo -u vsb_pgsql /opt/vsb9/pgsql/bin/pg_ctl start -D "/opt/vsb9/pgsql/data" –w
(其实启动pgsql就这一句)
由于进入操作系统以后,执行startup.sh脚本能够正常启动,初步判断是用户权限的问题,但是分拆脚本语句,分步执行以后,问题依旧。
最终更改pgsql启动语句为:
su - vsb_pgsql -c "/opt/vsb9/pgsql/bin/pg_ctl start -D /opt/vsb9/pgsql/data -w"
重启操作系统VSB全员正常启动,其实本文主要是为了说这句,其他描述都是为了衬托情节,增加神秘气氛,至于问题的具体原因已经不重要了。另外更改以后的startup.sh脚本不会影响VSB的正常情况下的启动和关闭。
既然CentOS 5.6存在这样的问题,那么CentOS 6.0和Redhat 6.0也应该会有类似的问题吧,在Redhat 6.0 x64里面亲测了一把,pgsql这货还真启动不了,同样的方法处理即可。(目前没有CentOS 6.0的镜像,未亲测。)