ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

脚本监控Linux、mac或windows某个后台进程,当进程死掉后重新启动服务,以stf为例

2021-08-05 21:03:38  阅读:146  来源: 互联网

标签:stf grep 为例 bat echo restartstf date 进程


1、linux和mac:

vi restartstf.sh

#!/bin/bash

while true   # 无限循环
flag=`ps -ef |grep "stf" |grep -v "grep" |wc -l`  #“ps -aux | grep”查找进程,“grep -v "grep"”排除 grep 本身这个进程,“wc -l”统计进程数
do
        if [[ $flag -eq 0 ]]   # 判断进程数如果等于0,则启动stf
        then
           	echo ">>>>no stf,run it"
	        `cd /root/clouddevice/stf`   # 进入stf文件夹
		`nohup stf local --public-ip yunji.tpp.jd.com --bind-dev-pull tcp://0.0.0.0:7114 --bind-dev-pub tcp://0.0.0.0:7116 -R > stf.log &`  #启动stf
                echo 'date' - "stf restart" >> running.log   # 将重启时间写入自定义的日志文件
        else
		echo ">>>>main is running"
                echo "stf is running..." >> /dev/null
        fi
        sleep 3s  # 延迟3秒后进入下次循环
done

 运行脚本:bash restartstf.sh &  #&:将这个任务放到后台去执行

直接执行脚本 sh restartstf.sh:

 

 

 2、windows:

restartstf.bat:

@echo off
set DestBat=D:\Desktop\stf.bat
set AppName=stf

title stf-watcher
cls
:startstf
	qprocess|findstr /i %AppName% >nul
	if %errorlevel%==0 (
        echo ^>%date:~0,10% %time:~0,8% stf is running...
    ) else (
	    echo ^>%date:~0,10% %time:~0,8% not found stf!
	    echo ^>%date:~0,10% %time:~0,8% restart stf process!
	    start %DestBat% 2>nul && echo ^>%date:~0,10% %time:~0,8% start stf success!
   )
for /l %%i in (1,1,10) do ping -n 1 -w 2000 'IP地址'>nul
   goto startstf
echo on

restartstf.bat:

@echo off
start stf

 启动:

进入bat文件路径下:

%xxx.bat

 

 



标签:stf,grep,为例,bat,echo,restartstf,date,进程
来源: https://www.cnblogs.com/Tanwheey/p/15105366.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有