【发布时间】:2013-10-29 07:13:11
【问题描述】:
我有一个 Java 程序可以调用一些 Web 服务。我将该程序打包在一个 JAR 文件中,并将其放在我的 linux 机器上。然后我制作了一个 .sh 文件,其内容是
#!/bin/sh
. /etc/profile
echo "The Script Starts now!!!!!!!!!!"
export JAVA_HOME=/u01/app/oracle/java/java64/jrockit-jdk1.6.0_29
export PATH=$JAVA_HOME/bin:$PATH
cd /u01/CRM_PRD/stores/CRM_COC_Utility/Jars
java -jar CRM_AccountCOC.jar
echo "The Script ends now!!!!!!!!!!"
我在 cronjob 中安排的这个 sh 文件每 45 分钟运行一次,这意味着上述命令每 45 分钟执行一次。
问题是当我在一两天后执行 TOP 命令时,我可以看到这个 JAR 的多个执行状态。因此,我的 linux 服务器的 %CPU 使用率增加了。
JAR 需要 10 分钟才能完成,重新执行 JAR 的频率是 45 分钟后。所以我需要在我的代码或 sh 文件中做些什么,这样当这个 JAR 执行时,java 进程也会被杀死。
希望它能解释我的问题。我在 linux 和 Java 方面不太专业
【问题讨论】:
-
首先你需要找出为什么你的 java 应用程序运行 45 分钟,而你将它编程为运行 10 分钟。尝试查找是否有任何阻塞线程。如果 java 应用程序正在终止,那么您不需要从 Linux 执行任何强制终止