我创建了一个名为oracleforms的服务来启动oracleforms,现在我想编写一个由crontab调用的脚本来检查oracleforms服务器是否每天运行,但是我不知道Forms的进程名是什么。*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
返回一些长字符串,如下所示:
甲骨文45181.4 13.1 1434532 533068?Sl 15:39 1:08 /usr/java/bin 1.6.0_3 9/bin/java -server -Xms256m -Xmx512m -XX:MaxPermSize=512m -Dweblogic.Name=WLS_FORMS - c.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.security.SSL.trustedCAKeySt.
发布于 2013-09-06 23:43:45
我发现表单服务器是由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-06 15:17:10
我不使用linux,但是您可以尝试命令:
service --status-all
得到所有的运行服务。然后尝试查找oracle窗体服务。如果你找不到。保存服务列表。杀死WLS_FORMS,找出哪一种服务消失了。然后使用:
service someservice status
https://stackoverflow.com/questions/18625768
复制相似问题