zoukankan      html  css  js  c++  java
  • 服务远程启动停止脚本,及开机自启

    1. 复制或软连接脚本到/etc/init.d/目录下

    2. 将脚本添加到初始化执行的队列中去
      注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如99。
      命令:update-rc.d xxx defaults NN命令 #(NN为启动顺序)

      ubuntu 16.04中一定要加上以下LSB信息,不然放入启动脚本的时候会报错无法开机启动。

      #!/bin/sh
      ### BEGIN INIT INFO
      # Provides:          svnd.sh
      # Required-start:    $local_fs $remote_fs $network $syslog
      # Required-Stop:     $local_fs $remote_fs $network $syslog
      # Default-Start:     2 3 4 5
      # Default-Stop:      0 1 6
      # Short-Description: starts the svnd.sh daemon
      # Description:       starts svnd.sh using start-stop-daemon
      ### END INIT INFO
      
    3. 设置脚本文件的权限
      $ sudo chmod 755 /etc/init.d/svnd.sh (注意一定要设置权限,不然开机不会启动)

    4. 执行如下命令将脚本放到启动脚本中去:
      $ cd /etc/init.d
      $ sudo update-rc.d svnd.sh defaults 95

    注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。

      1. 卸载启动脚本的方法:
        $ cd /etc/init.d
        $ sudo update-rc.d -f svnd.sh remove

    脚本eg: canal-start-up.sh

    #!/bin/bash
    #
    #https://wiki.debian.org/LSBInitScripts
    ### BEGIN INIT INFO
    # Provides:          canal
    # Required-Start:    $local_fs $remote_fs $network
    # Required-Stop:     $local_fs $remote_fs $network
    # Should-Start:      $named
    # Should-Stop:       $named
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start canal.
    # Description:       Start the canal servlet engine.
    ### END INIT INFO
    #export CANAL_HOME=$PATH
    export CANAL_HOME=/opt/Canal/canal.deployer-1.1.3-SNAPSHOT
    export CANAL_PID=$CANAL_HOME/canal.pid
    umask  007
    
    start() {
     echo "Starting canal ..."
     $CANAL_HOME/bin/startup.sh
    }
    stop() {
     echo "Stopping Canal ..."
     $CANAL_HOME/bin/stop.sh
    }
    status() {
     echo "Canal is running by PID $CANAL_PID"
    }
    case $1 in
      start|stop|status) $1;;
      restart) stop; start;;
      *) echo "Usage : $0 <start|stop|restart>"; exit 1;;
    esac
    
    exit 0
    nohup bin/hive --service xxxx  >/dev/null 2>&1 &

    模板脚本一:

    在/home/sea/bin目录下创建脚本f1.sh

    #! /bin/bash
    
    case $1 in
    "start"){
            for i in hadoop102 hadoop103
            do
                    echo " --------启动 $i 采集flume-------"
                    ssh $i "source /etc/profile; nohup /opt/module/flume/bin/flume-ng agent --conf-file /opt/module/flume/conf/file-flume-kafka.conf --name a1 -Dflume.root.logger=INFO,LOGFILE >/dev/null 2>&1 &"
            done
    };;    
    "stop"){
            for i in hadoop102 hadoop103
            do
                    echo " --------停止 $i 采集flume-------"
                    ssh $i "source /etc/profile; ps -ef | grep file-flume-kafka | grep -v grep |awk '{print $2}' | xargs kill"
            done
    
    };;
    esac

    说明1nohup,该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思,不挂断地运行命令。

    说明2/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。

    标准输入0:从键盘获得输入 /proc/self/fd/0 

    标准输出1:输出到屏幕(即控制台) /proc/self/fd/1 

    错误输出2:输出到屏幕(即控制台) /proc/self/fd/2

    2)增加脚本执行权限

    [atguigu@hadoop102 bin]$ chmod 777 f1.sh

    3)f1集群启动脚本

    [atguigu@hadoop102 module]$ f1.sh start

    4)f1集群停止脚本

    [atguigu@hadoop102 module]$ f1.sh stop

     

    模板脚本二:

    #! /bin/bash
    
    case $1 in
    "start"){
        echo " -------- 启动 集群 -------"
        echo " -------- 启动 hadoop集群 -------"
        /opt/module/hadoop-2.7.2/sbin/start-dfs.sh 
        ssh hadoop103 "source /etc/profile; /opt/module/hadoop-2.7.2/sbin/start-yarn.sh"
        #启动 Zookeeper集群
        zk.sh start
    
        sleep 4s;
    
        #启动 Flume采集集群
        f1.sh start
    
        #启动 Kafka采集集群
        kf.sh start
    
    sleep 6s;
    
        #启动 Flume消费集群
        f2.sh start
    
        #启动 KafkaManager
        km.sh start
    };;
    "stop"){
        echo " -------- 停止 集群 -------"
    
        #停止 KafkaManager
        km.sh stop
    
        #停止 Flume消费集群
        f2.sh stop
    
        #停止 Kafka采集集群
        kf.sh stop
    
        sleep 6s;
    
        #停止 Flume采集集群
        f1.sh stop
    
        #停止 Zookeeper集群
        zk.sh stop
    
        echo " -------- 停止 hadoop集群 -------"
        ssh hadoop103 "source /etc/profile; /opt/module/hadoop-2.7.2/sbin/stop-yarn.sh"
        /opt/module/hadoop-2.7.2/sbin/stop-dfs.sh 
    };;
    esac

     

     

    nohup bin/hive --service metastore >/dev/null 2>&1 &

  • 相关阅读:
    Yii Model中添加默认搜索条件
    Yii CModel中rules验证 获取错误信息
    Yii CModel中rules验证规则[转]
    json转jsonscheme在线转换工具地址
    git的基本使用
    python笔记(二)-打印、注释、输入、变量命名
    python笔记(一)-pycharm的简单使用
    python自动化-操作excel方法的封装
    python基础学习-excel的读写
    Robot Framework中处理时间控件的选择
  • 原文地址:https://www.cnblogs.com/lshan/p/12988449.html
Copyright © 2011-2022 走看看