CPUのプロセスがシステムサービスに配備、ハング密かに過度に起因する顧客の損失に利用できないために、あなた自身のシステムを作成します。
もともと文言デーモンを検討する用意が、Baiduの円の中に、非常に複雑に感じ、そして後者の方法でlinux crondのcronジョブシステムプロセスの監視と再起動を採用しました。
以前のバージョンとの大きな違いをcentos7上crondtabコマンド。コマンドの前にこのようなものです:
まず、サーバは、タスクスケジューラサービスは、rootユーザーのみがオンすることができ、オープンタイミングとcrondサービスオフになっていることを確認してください
[ルート@ mimvp-BJスクリプト]#サービスcrondステータス
crondが停止している
[ルート@ mimvp-BJスクリプトを]#サービスが開始crond
crondの開始:[OK]
[ルート@ mimvp-BJスクリプト]#サービスcrondステータス
crond(PID 24577)が走っています…
しかし、コマンド上記centos7は、次のコマンドにジャンプ自動的に、存在しないよう指示されます。
ステップ1:状態の発売以来crond.serivceサービスをチェックし
、[ルート@ localhostの〜]#のsystemctlのcrond.serviceが有効になっている、
無効
この時点でcrond.serivceで、状態の開始が無効になっていますので、
ステップ2:最初からcrond.serivceサービスを回し
[ルート@ localhostの〜]#systemctlのはcrond.serviceを有効にします
[ルート@ localhostの〜]#systemctlのは、有効になっているcrond.serviceが
有効
スタートアップファイルのすべてをリストします。
systemctlリストユニット・ファイル
スタートアップファイルを有効にするには、すべての状態を一覧表示します
systemctlリストユニット・ファイル| grepを有効にします
閉じた状態のcrond.serivceの開始以来、
systemctl無効crond.service
ステップ1:起動時の状態crond.serviceの表示
systemctlステータスcrond.service
オープンcrond.serviceサービスコマンド
crond.serviceを開始systemctl
サービスコマンドcrond.serviceを停止
systemctlストップcrond.service
サービスはcrondの状態の上centos7開始されていることを確実にするために、上記のコマンドによります。そして、次の項目を監視するためのスクリプトを記述します。
#!/bin/sh
# function:自动监控tomcat进程,挂了就执行重启操作
# 获取tomcat PPID
TomcatID=$(ps -ef | grep tomcat | grep -v 'grep' | awk '{print $2}')
# tomcat_startup
StartTomcat=/opt/service/tomcat/bin/startup.sh
#TOmcatCache=/opt/service/tomcatBlog/work
#定义要监控的页面地址
WebUrl=http://localhost:8080/manager/
# 日志输出
GetPageInfo=/dev/null
TomcatMonitorLog=/opt/service/logs/TomcatMonitor.log
Monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ "$TomcatID" ];then
echo "[info]tomcat进程ID为:$TomcatID."
#获取返回状态码
TomcatServiceCode=$(curl -s -o /dev/null --connect-timeout 10 -m 20 $WebUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ]; then
echo "[info]返回码为$TomcatServiceCode,tomcat启动成功,页面正常."
else
echo "[error]访问出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[error]开始重启tomcat"
kill -9 $TomcatID #杀掉原Tomcat进程
sleep 5
# rm -rf $TomcatCache #清理Tomcat缓存
$StartTomcat
fi
else
echo "[error]进程不存在!tomcat自动重启..."
echo "[info]$StartTomcat,请稍后....."
#rm -rf $TomcatCache
$StartTomcat
fi
echo "---------------------------------------"
}
Monitor>>$TomcatMonitorLog
上記の独自のディレクトリにこのスクリプト
Tomcatの起動スクリプトのパスでTomcat_startupは、WebUrlは、あなたがそれらの使用が可能変更する必要があり、ページアドレスを監視することです。
状態取得コマンドを実行しているTomcatの
PS -ef | grepをTomcatの|はgrep -v 'はgrep' | awkの'{$ 2印刷}'
アクセスページコマンドは、ステータスコードを返します。
-s -oを/ dev / null --connectタイムアウトカール10 -m 20 http://lazyrabbit.tech -w%{} HTTP_CODE
次に、タイマータスク#を設定します
5分ごとに実行し、定期的なタスクを追加します。
crontab -e
*/5 * * * * /usr/local/tomcat/monitor.sh
定期的なタスクを見ます
-l crontabの
#可能性のある問題
どちらJAVA_HOMEもJRE_HOME環境変数が定義されていません
環境の少なくとも一つの可変ATこれらは、このプログラムを実行するために必要な
JDKの環境を見つけることができませんでしたTomcatのスタートを、あなたは、Tomcat / binパスパスにsetclasspath.shファイルにJDKを設定する必要があります
輸出JAVA_HOME =は/ usr / local / javaの/ jdk8
輸出JRE_HOMEは=は/ usr / local / javaの/ jdk8 / JRE
/usr/local/tomcat/monitor.sh:アクセス許可が拒否されました
このスクリプトは、権限を持っていない、あなたは、権限を設定する必要があります
chmodの777 monitor.sh
次のエラーを報告した場合:
LinuxのどちらJAVA_HOMEもJRE_HOME環境変数が定義されています
JAVA_HOMEとの最JRE_HOMEのtomcat / binに/ catalina.shに添加してもよいです
輸出JAVA_HOME =は/ usr / libに/ JVM / jdk1.8.0_202
輸出JRE_HOME =は/ usr / libに/ JVM / jdk1.8.0_202 / JRE
どこのサーバー上の自身のアドレスにJAVA_HOMEおよびJRE_HOME
Catalina.shは、権限を変更します。chmod A + X catalina.sh
そして、定期的なタスクを実行するかどうかを観察。ゲット!
パートナーを使うには少し必要があり、それを取ります