0

我创建了一个名为oracleforms的服务来启动 Oracle Forms Server,现在我想编写一个脚本供 crontab 调用以检查 oracle forms 服务器是否每天都在运行,但我不知道 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 返回一些长字符串,如下所示:

甲骨文 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/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.security.SSL.trustedCAKeySt....

4

2 回答 2

0

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

service --status-all

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

service someservice status
于 2013-09-06T15:17:10.480 回答
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
于 2013-09-06T23:43:45.267 回答