Linux

linux 腳本 - 如果超過 80% Mem High,則查找 java 程序並重新啟動它

  • May 24, 2012

我想在 crontab 中放入一個 shell 腳本來監視 java 程序,如果它的記憶體超過 80%,那麼我想重新啟動它。有人可以幫忙嗎?謝謝!!埃拉德。

完美的監控案例。 http://mmonit.com/

範例配置

`check process foo with pidfile “/var/run/foo”

start program = “/bin/foo -c foo.conf”

stop program = “/bin/kill -KILL貓 /var/run/foo.pid

if totalmem is greater than X.0 MB for 5 cycles then restart`

你想要監控而不是腳本的原因是它可以給你發電子郵件、提供日誌,老實說還有很多,但我會把研究留給你。

假設 Java 程序有一個 initscript 和一個 PID 文件,並且你想在它使用超過 1G 的 RSS 記憶體時重新啟動它:

#!/bin/sh
set -e
RAM=`ps -o rss --no-headers -p $(cat /var/run/myservice.pid) || true`
if [ "$RAM" ]; then
   # It's not running
   service myservice start
elif [ "$RAM" -gt 1048576 ]; then
   # It's using too much memory
   service myservice restart
fi

引用自:https://serverfault.com/questions/392286