linux环境部署的filebeat在启动正常的情况下第二天查看已经停止运行,下游logstash一直运行正常。
当时启动filebeat的指令是:
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
通过对nohup的指令了解后发现 ,当关闭xshell终端时,断开ssh连接,会导致nohup进程同时终止。因为断开连接时,会发送SIGHUP信号给当前shell的作业列表的所有进程,nohup进程收到SIGHUP信号后就会停止运行。
解决办法:
1、关闭xshell终端前,先exit退出,断开ssh连接,然后就可以关闭终端;
2、在原来的启动指令上加上disown参数,这个参数会将nohup进程从当前shell的作业列表中清除,从而避免在关闭xshell时nohup进程接收到SIGHUP信号而停止运行。
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 & disown