以启动file_flume_kafkaChannel.conf Flume配置服务为例:
case $1 in
"start")
for i in hadoop101 hadoop102
do
echo "$i正在启动flume服务------------"
ssh $i "nohup /opt/module/flume/bin/flume-ng agent -c /opt/module/flume/conf/ -n a1 -f /opt/module/flume/job/file_flume_kafkaChannel.conf -Dflume.root.logger=INFO,LOGFILE >/opt/module/flume/test/file_flume_kafkaChannel.log 2>&1 &"
done
;;
"stop")
for i in hadoop101 hadoop102
do
echo "$i正在关闭flume服务------------"
ssh $i "ps -ef | grep file_flume_kafkaChannel | grep -v grep | awk '{print \$2}' | xargs kill 2>/dev/null "
done
;;
esac
解释说明:
1.nohup
: 可以在我们在后台进行运行,就算关闭了终端,也会继续运行, 如果在最后面加上 &
就会直接在后台运行,也不用占用终端了
2.grep -v grep
: 可以将grep本身所占用显示出来的端口,进行去除
3. xargs kill 2>/dev/null : 因为当kill 为null时, 会报错 ,这里将 kill产生的错误信息写入到黑洞文件当中
4. Dflume.root.logger=INFO,LOGFILE >/opt/module/flume/==test==/file_flume_kafkaChannel.log 2>&1
: 将日志保存到文件, 注意:这个test文件目录需要自己进行创建