Java 杀死已从MemoryError捕获的应用程序

Java 杀死已从MemoryError捕获的应用程序,java,weblogic,ear,sunos,Java,Weblogic,Ear,Sunos,我在Solaris 10环境中使用weblogic。我的申请被查出有记忆错误 我的问题是如何从shell脚本中消除应用程序的错误构建,而不是如何调优java或我的代码 使用Linux/BSD和Windows,我可以为我的特定应用程序执行pgrep,然后执行kill-SIGTERM,然后执行kill-SIGKILL操作。 但在SunOS上,我无法表示它们(ps(1)只返回前80个符号) 有人知道如何在重新部署期间不喝一杯或喝太多咖啡的情况下完成吗?对于JRockit VM,使用JVM参数-XXex

我在Solaris 10环境中使用weblogic。我的申请被查出有记忆错误

我的问题是如何从shell脚本中消除应用程序的错误构建,而不是如何调优java或我的代码

使用Linux/BSD和Windows,我可以为我的特定应用程序执行pgrep,然后执行
kill-SIGTERM
,然后执行
kill-SIGKILL
操作。 但在SunOS上,我无法表示它们(ps(1)只返回前80个符号)


有人知道如何在重新部署期间不喝一杯或喝太多咖啡的情况下完成吗?

对于JRockit VM,使用JVM参数
-XXexitOnOutOfMemory
;对于Sun JVM,使用
-XX:onAutofmemoryError=“kill-9%p”
。这需要添加到weblogic容器的启动JVM参数中


另请参阅Metalink note 1074735.1,以获取JRockit JVM的所有非标准JVM选项的列表,如果您希望ps输出超过80个字符,您可以使用
/usr/ucb/ps-alxww

ps-ef | grep java查看应用程序的pid,然后kill-9谈论应用程序-您想杀死部署在weblogic中的应用程序还是整个服务器?我指的是应用程序服务器,试试ps-ef | grep java,你会发现weblogic的processpgrep和pkill最早出现在Solaris中,后来在包括Gnu/Linux在内的其他操作系统中实现。您能否澄清您正在使用的Solaris的
cat/etc/release
的哪个确切版本缺少pgrep?我强烈怀疑您使用的是SunOS5.1(Solaris2.1)。这应该是SunOS5.10,而不是1993年左右发布的5.1。如果您希望ps输出超过80个字符,可以使用“/usr/ucb/ps-alxww”。这不是我想要的,但我可以使用它。谢谢