• CentOS6和CentOS7服务开机启动


    CentOS 6和CentOS 7都可以定义开机启动哪些服务,但CentOS 6的命令是chkconfig,CentOS 7是systemctl。

    本文将介绍两种命令的实现方式。

    一、CentOS 6的服务

    在CentOS 6下编写一个服务http,位于/etc/init.d目录下,具体的脚本如下:

    #!/bin/bash
    # chkconfig: 2345 10 90 
    # description: http ....
    
    start() {
      echo "HTTP is enabled now"
    }
    stop() {
      echo "HTTP is disable now"
    }
    case "$1" in
    start)
      start
      ;;
    stop)
      stop
      ;;
    restart)
      start
      stop
      ;;
    *)
      echo "USAGE $0 {start|stop|restart}"
      exit
    esac

    注意,两个注释"# chkconfig: 2345 10 90"和 "# description: http ...."表示:启动的level和优先级,已经服务的描述。这两段注释是一定要加上的。否则服务添加是报错。

    通过如下命令实现把服务注册到chkconfig中:

    chkconfig --add http

    然后可以通过:

    chkconfig http on

    定义开机启动这个服务。另外可以查看chkconfig的状态:

    chkconfig --list

    二、CentOS 7的服务

    在CentOS 7的机器中创建一个服务的脚本: /etc/init.d/myuptime。具体的脚本如下:

    #!/bin/bash
    
    start() {
      echo starting
      while true
      do
        uptime >> /root/myuptime.txt
        sleep 2
      done
    }
    stop() {
      echo stoping
      pid=`ps -ef | grep myuptime | grep -v grep | awk '{print $2}'`
      kill $pid &
    }
    case "$1" in
    start)
      start
      ;;
    stop)
      stop
      ;;
    *)
      echo "USAGE $0 {start|stop|restart}"
      exit
    esac

    在/etc/systemd/system中创建服务描述文件myuptime.service

    [Unit]
    Description=uptime Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/etc/init.d/myuptime start
    ExecStop=/etc/init.d/myuptime stop
    
    [Install]
    WantedBy=multi-user.target

    这个文件中包含Unit、Service和Install三个部分。定义了描述、服务属性的类型和安装参数等。其中ExecStart、ExecStop定义了启动和停止的实现方式。

    配置好后,运行:

    [root@hwcentos70-01 system]#systemctl enable myuptime
    
    ln -s '/etc/systemd/system/myuptime.service' '/etc/systemd/system/multi-user.target.wants/myuptime.service'

    systemctl把myuptime服务加入到了启动项目中。

    执行:

    [root@hwcentos70-01 system]#systemctl start myuptime

    查看:

    [root@hwcentos70-01 system]#systemctl status myuptime
    
    myuptime.service - uptime Service
    
    Loaded: loaded (/etc/systemd/system/myuptime.service; enabled)
    
    Active: active (running) since Fri 2016-02-26 13:37:23 UTC; 10s ago
    
    Main PID: 53620 (myuptime)
    
    CGroup: /system.slice/myuptime.service
    
    ├─53620 /bin/bash /etc/init.d/myuptime start
    
    └─53632 sleep 2
    
     
    
    Feb 26 13:37:23 hwcentos70-01 systemd[1]: Started uptime Service.
    
    Feb 26 13:37:23 hwcentos70-01 myuptime[53620]: starting

    通过以上的方法实现把myuptime作为服务加入启动项。

  • 相关阅读:
    spring bean的作用域
    Web前端开发CSS规范总结
    前端技术都包含哪些?
    Web安全常见问题及解决方法
    如何让手游更省带宽,耗电量更少?TBR渲染架构解析!
    新手学Java,有哪些入门知识点?
    如何让手游内存占用更小?从内存消耗iOS实时统计开始
    动作游戏老是卡?试试从这些方面提升流畅度
    开发者必知!2020年大前端发展趋势解读
    游戏编程入门! 想成为专业的游戏开发程序员需要掌握哪些?
  • 原文地址:https://www.cnblogs.com/hengwei/p/5221888.html
Copyright © 2020-2023  润新知