Shell 杀掉并重启进程 -- filebeat重启

在搭建ELK日志系统的时候,由于需要调试一些参数,且因某些原因没有设置为系统服务,也没有设置快捷方式,每次重启都要指定配置很是麻烦,于是写了一个脚本来达到一键重启的目的,稍微修改一下可达到公用。

# 获取当前用户并截取前7位,如果是root用户则退出操作
current_user=$(whoami)
user=${current_user:0:7}
if [ $user = "root" ]; then
  echo "current user is root, exit..."
  exit
else
  echo "current user is $user"
fi

# 匹配当前用户操作的filebeat进程,可能是数组,遍历杀掉进程
pids=$(ps -ef | grep filebeat | grep $user | grep -v "grep" | awk '{print $2}')
for id in $pids
do
  kill -9 $id
  echo "killed pid $id"
done
# 可用此句代替: kill -9 `ps -ef | grep filebeat | grep $user | awk '{print $2}' `

# 如果开启了filebeat自带日志,只需执行下面这句,后面的不需要了
#  nohup ./filebeat -c filebeat.yml >> /dev/null  &

# 判断日志文件是否存在,不存在则创建
if [ ! -f "logs/filebeat"  ]; then
  mkdir -p logs
  cd logs
  touch filebeat
  echo "create filebeat log file..."
  cd ..
fi

echo "current path is $(pwd)"

# 后台启动filebeat,并将日志追加到日志文件
nohup ./filebeat -c filebeat.yml >> logs/filebeat  &

你可能感兴趣的:(shell,linux)