我创建了一个名为 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 ....
答案 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