1. #!/bin/bash
  2. #echo "begin start flume..."
  3. #flume的安装根目录(根据自己情况,修改为自己的安装目录)
  4. path=/sysware/apache-flume-1.8.0-bin
  5. echo "flume home is :$path"
  6. #flume的进程名称,固定值(不用修改)
  7. JAR="flume"
  8. #flume的配置文件名称(根据自己的情况,修改为自己的flume配置文件名称)
  9. Flumeconf="flume-conf.conf"
  10. #定义的soure名称
  11. agentname="agent1"
  12. function start(){
  13. echo "begin start flume process ...."
  14. #查找flume运行的进程数
  15. num=`ps -ef|grep java|grep $JAR|wc -l`
  16. #判断是否有flume进程运行,如果有则运行执行nohup命令
  17. if [ "$num" = "0" ] ;then
  18. nohup $path/bin/flume-ng agent --conf conf -f $path/conf/$Flumeconf --name $agentname -Dflume.root.logger=INFO,console &
  19. echo "start success...."
  20. echo "日志路径: $path/logs/flume.log"
  21. else
  22. echo "进程已经存在,启动失败,请检查....."
  23. exit 0
  24. fi
  25. }
  26. function stop(){
  27. echo "begin stop flume process.."
  28. num=`ps -ef|grep java|grep $JAR|wc -l`
  29. #echo "$num...."
  30. if [ "$num" != "0" ];then
  31. #正常停止flume
  32. ps -ef|grep java|grep $JAR|awk '{print $2;}'|xargs kill
  33. echo "进程已经关闭..."
  34. else
  35. echo "服务未启动,无须停止..."
  36. fi
  37. }
  38. function restart(){
  39. #echo "begin stop flume process .."
  40. #执行stop函数
  41. stop
  42. #判断程序是否彻底停止
  43. num='ps -ef|grep java|grep $JAR|wc -l'
  44. #stop完成之后,查找flume的进程数,判断进程数是否为0,如果不为0,则休眠5秒,再次查看,直到进程数为0
  45. while [ $num -gt 0 ];do
  46. sleep 5
  47. num='ps -ef|grep java|grep $JAR|wc -l'
  48. done
  49. echo "flume process stoped,and starting..."
  50. #执行start
  51. start
  52. echo "started...."
  53. }
  54. #case 命令获取输入的参数,如果参数为start,执行start函数,如果参数为stop执行stop函数,如果参数为restart,执行restart函数
  55. case "$1" in
  56. "start")
  57. start
  58. ;;
  59. "stop")
  60. stop
  61. ;;
  62. "restart")
  63. restart
  64. ;;
  65. *)
  66. ;;
  67. esac  

  

以上脚本命名成.sh文件,例如我命名为 flume.sh  ,存放路径为 /sysware

调用start 函数:

sh /sysware/flume.sh start

调用 stop命令

sh /sysware/flume.sh stop

调用重启命名

sh /sysware/flume.sh restart

以上脚本即可完成flume的start,stop,restart,并且在后台运行的需求。

此博客中涉及到一些flume,shell命令知识点

shell :函数、if 、while ,case、wc,管道符| 、sleep 等,可参考linux分类进行学习

flume:flume启动命令 ,可参考大数据分类进行学习

flume 启动,停止,重启脚本的更多相关文章

  1. Linux Systemd——在RHEL/CentOS 7中启动/停止/重启服务

    RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...

  2. 在CentOS 7中启动/停止/重启服务

    RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...

  3. linux如何启动/停止/重启MySQL

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start2.使用 mysqld 脚本启动:/etc/inint.d/mysqld star ...

  4. 批处理命令行CMD启动停止重启IIS的命令

    原文:批处理命令行CMD启动停止重启IIS的命令 启动IIS: net start iisadmin    (IIS的整个服务) net start w3svc       (WWW网页WEB服务) ...

  5. Linux shell脚本启动 停止 重启jar包

    最近做的微服务jar包想弄在持续集成中自动化部署,所以首先得有一个操作jar包的脚本 只需将jar文件的路径替换到APP_NAME的值就可以了,其他不用改 注意:window编辑的shell文件,通过 ...

  6. Linux编辑启动停止重启springboot jar包脚本

    springboot的配置文件中,配置文件的名字都有各自的意义跟用途 dev 开发环境 prod 生产环境(默认) test 测试环境 加载指定配置文件 --spring.profiles.activ ...

  7. Shell脚本_启动停止重启sh脚本

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  8. sh - 脚本学习 启动/停止/重启/部署jetty crontab

    ===============jettytest.sh ====================== #!/bin/shjettysh_path=/usr/local/jetty/bin/jetty. ...

  9. Linux启动/停止/重启Mysql数据库的方法

    1.查看mysql版本 方法一:status; 方法二:select version(); 2.Mysql启动.停止.重启常用命令 a.启动方式 1.使用 service 启动: [root@loca ...

  10. Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法 + Linux启动/停止/重启Mysql数据库的方法

    启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/m ...

随机推荐

  1. iOS 个人所得税 app 基础解析实践

    前言:2019年 新个税实施在即,全国几乎所有在职员工都会下载“个人所得税”app来使用,并且 注册使用过程需要填写身份证号等相当私密重要的个人信息. 至今,各大app平台应用下载榜首仍然“无人能出其 ...

  2. ios 常见问题解决 以及小技巧

    1.使用cocoaPods引用第三方类库,报错:file not found   . 解决方案:设置 Project->Info->Configurations之后  clear ,然后再 ...

  3. 【WPF】修改ComboBox样式

    修改WPF默认的ComboBox控件样式 如下图所示: 修改代码如下: <UserControl.Resources> <Style TargetType="ToggleB ...

  4. Django学习笔记之Models与ORM操作

    一.ORM增加 from django.db import models class Publisher(models.Model): name = models.CharField(max_leng ...

  5. Django学习笔记之django-debug-toolbar使用指南

    介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. github地址 文档地址 安装 pip3 in ...

  6. Phred-scale quality scores的相关内容

    phred-scale quality score起源于人类基因组计划,最初是用来评估碱基质量分数,后来,被广泛的推广到基因领域的其他内容. phred-scalequality score表示这件事 ...

  7. 20145335《java程序设计》第10周学习总结

    20145335郝昊 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的 ...

  8. Linux ASLR的实现

    ASLR大家都会听说过,但是Linux平台下应用程序的ASLR的情况是怎么样的呢?我在这里将ASLR分为几个小的部分来阐述,包括了栈的随机化,堆的随机化,mmap的随机化,以及pie程序运行时的主模块 ...

  9. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

    关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 —— IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Ci ...

  10. MR案例:CombineFileInputFormat

    CombineFileInputFormat是一个抽象类.Hadoop提供了两个实现类CombineTextInputFormat和CombineSequenceFileInputFormat. 此案 ...