#!/bin/bash # 文件目录 fileDir=/usr/local/project/back logDir=/usr/local/project/logs # 设置需要检测的文件路径 fileName=media-fuse-1.0.0.jar # 获取当前文件最后编辑时间戳 initTime=`stat -c %Y $fileDir/$fileName` # 循环查询文件最后编辑时间是否变化 while true do changeTime=`stat -c %Y $fileDir/$fileName` if [ $changeTime -eq $initTime ];then echo $(date +%F%n%T) $fileDir/$fileName 'not change' else initTime=$changeTime echo $(date +%F%n%T) $fileDir/$fileName 'has been changed' # 杀掉进程 ps -ef|grep media-fuse-1.0.0|grep -v grep|cut -c 9-15|xargs kill -9 # 运行新的文件 nohup java -jar $fileDir/$fileName > $logDir/media-fuse.log & fi # 检测间隔 sleep 5 done
转自:https://blog.csdn.net/China_hdy/article/details/101303834