Linuxのcentos7は、定期的なタスクをcrondプロセス監視とTomcatを再起動します

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/jsqfengbao/article/details/91048391

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

そして、定期的なタスクを実行するかどうかを観察。ゲット!

パートナーを使うには少し必要があり、それを取ります

 

おすすめ

転載: blog.csdn.net/jsqfengbao/article/details/91048391