自动巡检kafka进程号并自启

#!/bin/sh
#ps -ef | grep $proc_name | grep -v grep | awk ‘{print $2}‘
source /etc/profile
proc_dir="/data/modules/kafka_2.12-1.1.1" ? ?# 程序目录
proc_name="kafka.Kafka" ? ? ? ? ? ? ? ? ? ? ?# 进程名
file_name="/data/lzmhtest/crontab/kafka/kafka.log" ? ? # 日志文件

number=ps -ef | grep $proc_name | grep -v grep | wc -l
PIDS=$(ps ax | grep $proc_name | grep java | grep -v grep | awk ‘{print $1}‘)
if [ $number -eq 0 ] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 判断进程是否存在
then
? ? ? ? #cd /data/modules/kafka_2.12-1.1.1/bin
? ? ? ? sh $proc_dir/bin/kafka-server-start.sh -daemon $proc_dir/config/server.properties ? ? # 重启进程
? ? ? ? pid=$(ps ax | grep $proc_name | grep java | grep -v grep | awk ‘{print $1}‘) ? #获取新进程号
? ? ? ? echo "服务出现异常.正在重启中..." [$(date +‘%F %H:%M:%S‘)] ?>> $file_name
? ? ? ? echo "服务启动完成" PID: $pid [$(date +‘%F %H:%M:%S‘)] >> $file_name # 将新进程号和重启时间记录
else
? ? ? ? echo "kafka正常运行" [$(date +‘%F %H:%M:%S‘)] "pid:" $PIDS ?>> $file_name
fi

底下是cronta定时脚本;我写的是每1分钟巡检一次

/1 * lzmhqa /bin/sh /data/lzmhtest/crontab/kafka/kafka.sh

原文地址:https://blog.51cto.com/2624035/2472187

时间: 2024-10-08 09:36:08

自动巡检kafka进程号并自启的相关文章

linux kafka进程挂了 自动重启

使用crontab,定时监控 kafka进程,发现挂了后重启. shell脚本如下: #!/bin/sh source /etc/profile proc_dir="/data/kafka" # 程序目录 proc_name="kafka.Kafka" # 进程名 file_name="cron.log" # 日志文件 pid=0 proc_num() # 计算进程数 { num=`ps -ef | grep $proc_name | grep

Shell 脚本 ,, 根据进程号退出 从而关机

#!/bin/bash fun(){ ps -ef | grep "$1" | awk '{print $2 $8}' > /usr/file while read line ;do if [[ $line == $1 ]] then # do something // return fi done < /usr/file echo "shutdown ... after 3s " sleep 3 shutdown -h now } while true

OSPF ProcessID(进程号)详解

一.OSPF ProcessID本地有效 首先明确一下,OSPF ProcessID,范围为1-65535,用于在路由器本地标识OSPF进程. 看上图,R1使用进程号10创建了一个OSPF进程,同时宣告了自己的直连接口:而R2使用进程号20创建了一个OSPF进程,同时也宣告了自己的直连接口.虽然这两个进程号不一样,但是我们说,OSPF进程号只是本地有效,这句话的意思是,对于R1而言,它并不关心它的直连OSPF邻居-R2使用的是什么OSPF进程号,10也号,20也罢,这就有点像“自己的事自己知道”

每天进步一点点——重新认识Linux中的进程号

转载请说明出处:http://blog.csdn.net/cywosp/article/details/38968011 1. 概述 众所周知,进程(process)是一个可执行程序的实例,但是在Linux中进程可以重新改写为,进程是由内核定义的抽象的实体,并为该实体分配用以执行程序的各项系统资源.从内核的角度看,进程由用户内存空间(user-space memory)和一系列内核数据结构组成,其中用户内存空间包含了程序代码及代码所使用的变量,而内核数据结构则用于维护进程状态信息.记录在内核数据

eclipse重的自动提示与行号和快捷图标的显示

显示行号:Window->Preferences->Gerenal->Editors->Text Editors然后在show line number上打对勾自动提示:Window->Preferences->java->Editor->Cintent Assist->Auto activation triggers for java     在后边框中写想要提示的内容 显示eclipse中的快捷图标:Window->show  toolbar

进程号的类型定义pid_t

创建进程时经常会用到进程号的类型定义:pid_t.我们都知道这个类型定义实际上就是int型.但是在linux下的c中的头文件中这个定义到底是怎么定义的呢?今天就把以前找这个定义的过程贴出来: 1.首先在/usr/include/sys/types.h中有如下定义 #include      ......    #ifndef __pid_t_definedtypedef __pid_t pid_t;# define __pid_t_defined#endif可以看到pid_t 其实就是__pid

【Linux】查看进程号

1.查看占用8080端口的进程号 lsof -i:9092 | awk '{print $2}' | uniq | grep -P -o "[0-9]{2,5}" 2.查看使用java进程 该进程使用java -jar方式启动,使用jps无法查找到进程信息 ps -ef | grep h2-bonc3.jar | grep 'grep' -v

查询当前会话进程号

select P.SPID, s.status, S.sid,S.serial#,S.username,S.machine,S.program,S.osuser,to_char(S.logon_time,'yyyy/mm/dd-hh24:mi:ss'),s.audsid from v$process P,  v$session S WHERE P.addr = S.paddr  AND s.audsid = userenv('sessionid') --audsid: Auditing sess

通过端口号查找进程号并杀掉进程window和Linux版本

window版本: cmd下执行: 1.查找某端口号下的进程: netstat -ano|findstr 8080 如果该端口号存在进程,执行完命令后会出现列表,最后一列的数字表示该端口号下的进程号 2.使用 taskkill /F  /PID  pid进程号,例如:taskkill /F  /PID 10480   其中/F表示的是强行杀死进程