Автозапуск Nodemanager'а и Weblogic'а с помощью Upstart в Linux

Автозапуск Nodemanager'а и Weblogic'а с помощью Upstart в Linux

Еще более простой способ запуска Nodemanager'а и серверов Weblogic в операционной системе Linux я обнаружил в материалах Криса Джонсона из оракловой Команды "А" (вот его пост: ateam-oracle.com/starting-and-stopping-weblogic-automatically-using-upstart ). Он рекомендует запускать Nodemanager в качестве службы через Upstart. Upstart изначально появился в Убунту в качестве замены init и, в отличии от последнего, он не только запускает или останавливает службы и задачи, но также отслеживает их работу на основе событий. Т.е. если Nodemanager, запущенный через Upstart, вдруг "нечаянно" упадет, то Upstart может его перезапустить.

Сама настройка выглядит очень просто. В первую очередь я выключил службу Nodemanager, созданную ранее с помощью chkconfig.
[root@server ~]# chkconfig
...
nodemgr 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
oudsrv 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
...
tomcat 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
[root@server ~]# chkconfig nodemgr off
[root@server ~]# chkconfig --del nodemgr
[root@server ~]# chkconfig
...
oudsrv 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
...
tomcat 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
[root@server ~]# ps -ef | grep java
oracle 1241 1190 0 09:20 ? 00:00:07 /opt/jdk1.6.0_43/bin/java -client -Xms32m -Xmx200m -XX:MaxPermSize=128m -Dcoherence.home=/oracle/Middleware/coherence_3.7 -Dbea.home=/oracle/Middleware -Xverify:none -Xverify:none -Djava.security.policy=/oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.nodemanager.javaHome=/opt/jdk1.6.0_43 weblogic.NodeManager -v
oracle 1323 1 0 09:21 ? 00:00:27 /opt/jdk1.6.0_43/jre/bin/java -server -Dorg.opends.server.scriptName=start-ds org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile /oracle/Middleware/asinst_1/OUD/config/config.ldif --quiet
root 2304 2280 0 10:06 pts/0 00:00:00 grep java

Затем я перезагрузил сервер и убедился, что Nodemanager больше не запускается при старте ОС.
Для создания службы Nodemanager в Upstart нужно всего лишь создать файл /etc/init/nodemanager.conf в директории /etc/init (в моих примерах он называется nodemgr.conf). Файл содержит всего две строки:
start on runlevel [345]
exec /bin/su - oracle -- /oracle/Middleware/wlserver_10.3/server/bin/startNodeManager.sh


Работать с таким сервисом очень просто. Запуск, остановка и проверка статуса осуществляются следующим образом:
[root@server ~]# status nodemgr
nodemgr stop/waiting
[root@server ~]# start nodemgr
nodemgr start/running, process 1761
[root@server ~]# stop nodemgr
nodemgr stop/waiting


После перезагрузки сервера Nodemanager запустился автоматически.

Таким же образом можно запускать "Админ" и "Менеджед" серверы Weblogic'а. Например:
/etc/init/adminserver.conf
start on runlevel [345]
exec /bin/su - oracle -- /oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh

/etc/init/soaserver1.conf
start on runlevel [345]
exec /bin/su - oracle -- /oracle/Middleware/user_projects/domains/base_domain/bin/startManagedWebLogic.sh soa_server1

/etc/init/oimserver1.conf
start on started soaserver1
stop on stopping soaserver1
exec /bin/su - oracle -- /oracle/Middleware/user_projects/domains/base_domain/bin/startManagedWebLogic.sh oim_server1

[root@server ~]# start adminserver
nodemgr start/running, process 1156
[root@server ~]# start soaserver1
nodemgr start/running, process 1262
[root@server ~]# start oimserver1
nodemgr start/running, process 1291

Чтобы Upstart перезапускал службу автоматически, нужно добавить в *.conf файл следующие строчки:
respawn
respawn limit 10 300


В моем примере также указано следующее ограничение: если служба будет перезапущена более 10 раз в интервале 300 секунд, то служба будет автоматически остановлена и не перезапустится. Помимо этого в примере для менеджед сервера oim_server1 указано условие: запустить oimserver1, когда будет запущен soaserver1 и остановить oimserver1, перед тем, как soaserver1 будет остановлен.

Оставить комментарий