Oracle Forms:如何检查oracle表单11g进程是否正在运行?

时间:2013-09-05 00:09:06

标签: linux oracle process oracleforms

我创建了一个名为 oracleforms 的服务来启动Oracle Forms Server,现在我想编写一个由crontab调用的脚本,以检查oracle表单服务器是否每天都在运行,但我不是知道Forms Server的进程名称是什么。 * WLS_FORMS *似乎不起作用,这是我的脚本:

#!/bin/bash
if [ -z "$(pgrep WLS_FORMS)" ]; then
  echo "Process is not running."
  service oracleforms start
else
  echo "Process is running."
fi

ps aux | grep WLS_FORMS会返回一些长字符串,如下所示:

oracle 4518 1.4 13.1 1434532 533068? Sl 15:39 1:08 /usr/java/jdk1.6.0_3 9 / bin / java -server -Xms256m -Xmx512m -XX:MaxPermSize = 512m -Dweblogic.Name = WLS_FORMS - Djava.security.policy = / home / oracle /Oracle/Middleware/wlserver_10.3/server/lib/weblogi c.policy -Dweblogic.ProductionModeEnabled = true -Dweblogic.security.SSL.trustedCAKeySt ....

2 个答案:

答案 0 :(得分:0)

我不使用linux,但你可以尝试命令:

service --status-all

获取所有正在运行的服务。然后尝试找到oracle表单服务。如果你找不到它。保存服务列表。杀死WLS_FORMS并尝试查找哪些服务已消失。 然后使用:

service someservice status

答案 1 :(得分:0)

我发现表单服务器是由java启动的,Dweblogic.Name = WLS_FORMS作为参数。 由于ps aux | grep WLS_FORMS可以检测到信息,因此我更改了以下脚本,现在工作正常

#!/bin/bash
if [ $( ps aux | grep WLS_FORMS |wc -l) -eq 1 ]
then
  echo "Process is not running."
  service oracleforms start
else
  echo "Process is running."
fi