linux進程監(jiān)控與自動重啟的簡單實現(xiàn)方法
目的:
linux 下服務(wù)器程序會因為各種原因dump掉,就會影響用戶使用,這里提供一個簡單的進程監(jiān)控和重啟功能。
實現(xiàn)原理:
由定時任務(wù)crontab調(diào)用腳本,腳本用ps檢查進程是否存在,如果不存在則重啟并寫入日志。
crontab修改
# crontab -e */5 * * * * /mnt/bindmonitor.sh
/mnt/bindmonitor.sh 的實現(xiàn)
#! /bin/sh
host_dir=`echo ~` # 當(dāng)前用戶根目錄
proc_name="/home/wkubuntu/named/sbin/named" # 進程名
file_name="/mnt/bindmonitor.log" # 日志文件
pid=0
proc_num() # 計算進程數(shù)
{
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
return $num
}
proc_id() # 進程號
{
pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`
}
proc_num
number=$?
if [ $number -eq 0 ] # 判斷進程是否存在
then
/home/wkubuntu/named/sbin/named -c /home/wkubuntu/named/etc/named.conf -n 1 &
# 重啟進程的命令,請相應(yīng)修改
proc_id # 獲取新進程號
echo ${pid}, `date` >> $file_name # 將新進程號和重啟時間記錄
fi
刪除進程測試
a. #killall -15 named
b. 5分鐘后,cat /mnt/bindmonitor.log看看有無最新的記錄,進程號與# ps -ef |grep named 進程號對應(yīng)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
LNAMP架構(gòu)中后端Apache獲取用戶真實IP地址的2種方法
Nginx作為前端,Apache作為后端的情況下,Apache只能獲取到Nginx前端的ip地址(127.0.0.1),而無法獲取到用戶的真實ip地址,在這種情況下,后端Apache如何獲取用戶真實IP地址?2014-03-03
Apache Airflow 快速入門教程應(yīng)用場景分析
ApacheAirflow是一個用于編排、調(diào)度和監(jiān)控工作流的開源平臺,適用于ETL和MLOps用例,它通過有向無環(huán)圖(DAG)定義管道,支持任務(wù)依賴關(guān)系、調(diào)度、錯誤處理和日志記錄,本文介紹Apache Airflow 快速入門教程,感興趣的朋友一起看看吧2024-12-12
Logrotate實現(xiàn)Catalina.out日志每倆小時切割示例
Logrotate是一個日志文件管理工具,它是Linux默認(rèn)自帶的一個日志切割工具。本篇文章主要介紹了Logrotate實現(xiàn)Catalina.out日志每倆小時切割示例,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助2019-02-02
LuManager Linux/Unix服務(wù)器管理面板推薦之國產(chǎn)面板
國外VPS 大多數(shù)是 Linux /Unix平臺,Linux/Unix平臺的優(yōu)點也很多,重點是它還是免費的,(用過美國VPS 的朋友都知道國外IDC 裝Windows是需要版權(quán)費的)國內(nèi)大型網(wǎng)站幾乎都是用Linux/Unix平臺2012-09-09
解決fatal:remote error:You can''t push to git://github.com/use
這篇文章主要介紹了解決fatal:remote error:You can't push to git://github.com/username/*.git問題的辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12

