zoukankan      html  css  js  c++  java
  • Linux——开机自启动

    前言

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务,这里介绍CentOS开机自启动的几种方法。

    CentOS 6.X

    方式一. 修改/etc/rc.d/rc.local脚本

    1、在 /etc/rc.d/rc.local 文件的内容未尾加入相关命令(可以是启动命令,也可以是启动脚本文件)

    • 加入启动命令
    vim /etc/rc.d/rc.local
    /usr/local/service/redis-2.8.3/src/redis-server --port 6379 &

    注:切忌 命令行末尾要加上 [  &  ] 符号, 表示任务在后台执行。否则会阻塞后面添加的命令行执行。

    • 加入启动脚本文件

    首先创建shell文件filebeat.sh:

    #!/bin/bash
    nohup /opt/elk/filebeat-7.14.0-linux-x86_64/filebeat -e -c /opt/elk/filebeat-7.14.0-linux-x86_64/filebeat.yml >/opt/elk/filebeat-7.14.0-linux-x86_64/filebeat.log 2>&1 &

    然后给shell赋执行权限:

    chmod +x filebeat.sh

    最后加入启动脚本文件:

    vim /etc/rc.d/rc.local
    /opt/elk/filebeat-7.14.0-linux-x86_64/filebeat.sh

    2、给 rc.local 赋执行权限

    chmod +x /etc/rc.d/rc.local

    方式二. chkconfig

    1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚本内容如下:

    #!/bin/sh
    #chkconfig: 2345 80 90
    #description:开机自动启动的脚本程序
    
    # 开启redis服务 端口为6379
    /usr/local/service/redis-2.8.3/src/redis-server --port 6379 &

    脚本第一行 “#!/bin/sh” 告诉系统使用的shell; 
    脚本第二行 “#chkconfig: 2345 80 90” 表示在2/3/4/5运行级别启动,启动序号(S80),关闭序号(K90); 
    脚本第三行 表示的是服务的描述信息

    注意: 第二行和第三行必写,负责会出现如“服务 autostart.sh 不支持 chkconfig”这样的错误。

    2. 将写好的autostart.sh脚本移动到/etc/rc.d/init.d/目录下

    3. 给脚本赋可执行权限

    cd /etc/rc.d/init.d/
    chmod +x autostart.sh

    4. 添加脚本到开机自动启动项目中

    chkconfig --add autostart.sh
    chkconfig autostart.sh on

    CentOS 7.X

    1. 进入自启动目录:

    cd /lib/systemd/system
    vim filebeat.service

    2. 编写filebeat.service:

    [Unit]
    Description=filebeat
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    User=root
    ExecStart=/opt/elk/filebeat-7.14.0-linux-x86_64/filebeat -e -c /opt/elk/filebeat-7.14.0-linux-x86_64/filebeat.yml  #/opt/elk/filebeat-7.14.0-linux-x86_64为filebeat的安装目录
    Restart=always  #设置为掉线自动重启,进程强制杀掉后会自动重新启动
    
    [Install]
    WantedBy=multi-user.target

    3. 启动验证:

    systemctl daemon-reload             #加载配置
    systemctl enable filebeat               #设置开机自启动
    systemctl disable filebeat              #停止开机自启动
    
    systemctl start filebeat                #启动filebeat服务
    systemctl restart filebeat             #重新启动服务
    
    systemctl status filebeat               #查看服务当前状态
    systemctl list-units --type=service      #查看所有已启动的服务
  • 相关阅读:
    【LeetCode-树】找树左下角的值
    【LeetCode-贪心】合并区间
    MongoDB3.6版本新增特性
    MongoDB initial sync过程
    MongoDB3.4版本新增特性
    保险配置原则
    MongoDB批量操作时字段为null时没有入库
    Kafka消费者没有收到通知的分析
    Git分支的管理
    NoSQLBooster如何MongoDB的部分文档从一个集合拷贝到另外一个集合中
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/15398383.html
Copyright © 2011-2022 走看看