• 让1个服务开机自启动 有什么方法


    此题也可以称为:
    让1个脚本或命令通过service 管理或chkconfig或systemctl 管理

    方法1 CentOS6和CentOS7

    /etc/rc.local

    注意:

    CentOS 7中使用rc.local之前 需要加上执行权限
    chmod +x /etc/rc.d/rc.local

    方法2 CentOS 6中

    可以通过chkconfig(check config)管理开机自启动

    1.书写1个脚本放在/etc/init.d/目录下

    1. [root@oldboyedu-54-final ~]# cat /etc/init.d/oldboyd
    2. #!/bin/bash
    3. hostname

    2.脚本要有执行权限

    [root@oldboyedu-54-final ~]# chmod +x /etc/init.d/oldboyd
    

    3.脚本的开头要有chkconfig要求的格式

    1. [root@oldboyedu-54-final ~]# cat /etc/init.d/oldboyd
    2. #!/bin/bash
    3. # chkconfig: 2345 99 99
    4. hostname
    # chkconfig:23459999
    默认格式默认开机自启动级别开机顺序关机顺序

    4.把脚本加入到chkconfig管理

    1. [root@oldboyedu-54-final ~]# chkconfig --add oldboyd
    2. [root@oldboyedu-54-final ~]# chkconfig |grep oldboy
    3. oldboyd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    方法3 CentOS 7中 systemctl 控制开机自启动

    systemctl start/restart/enable/disable rsync 通过配置文件实现

    1.放在 /usr/lib/systemd/system/rsyncd.service 目录下

    systemctl配置文件的格式

    创建centos7 可以被systemctl管理配置文件的格式

    [unit] 部分
    #写注释说明
    After与Before 依赖
    After在xxxx服务之后运行
    Before 在xxxx服务之前运行
    ConditionPathExists 如果文件或目录存在

    [Service]
    写服务开启或关闭命令
    ExecStartPre启动服务之前运行
    ExecStartPre=/usr/bin/rm -f /run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t
    ExecStart=/usr/sbin/nginx #启动nginx的命令
    ExecReload=/bin/kill -s HUP $MAINPID #重启 重新读取配置文件
    KillSignal=SIGQUIT
    man kill 查询更多信号

    [Install]
    WantedBy=multi-user.target #指定运行级别

    例子nginx启动

    1. [root@oldboyedu-54-final ~]# cat /usr/lib/systemd/system/rsyncd.service
    2. [Unit]
    3. Description=fast remote file copy program daemon
    4. ConditionPathExists=/etc/rsyncd.conf
    5. [Service]
    6. EnvironmentFile=/etc/sysconfig/rsyncd
    7. ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"
    8. [Install]
    9. WantedBy=multi-user.target

    例子rsyncd启动

    1. [root@oldboyedu-54-final ~]# cat /usr/lib/systemd/system/nginx.service
    2. [Unit]
    3. Description=The nginx HTTP and reverse proxy server
    4. After=network.target remote-fs.target nss-lookup.target
    5. [Service]
    6. Type=forking
    7. PIDFile=/run/nginx.pid
    8. ExecStartPre=/usr/bin/rm -f /run/nginx.pid
    9. ExecStartPre=/usr/sbin/nginx -t
    10. ExecStart=/usr/sbin/nginx
    11. ExecReload=/bin/kill -s HUP $MAINPID
    12. KillSignal=SIGQUIT
    13. TimeoutStopSec=5
    14. KillMode=process
    15. PrivateTmp=true
    16. [Install]
    17. WantedBy=multi-user.target

    参考文档:

    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7

  • 相关阅读:
    $nextTick和setTimeout区别(宏任务微任务)
    点云从入门到精通技术详解100篇-基于激光雷达点云的路面破损检测
    PagerDuty帮助CTC改变远程世界的运营
    SAP ERP系统里的那些核心主数据
    回溯算法的应用
    【限定词习题】all
    Python数据分析案例07——二手车估价(机器学习全流程,数据清洗、特征工程、模型选择、交叉验证、网格搜参、预测储存)
    力扣(LeetCode)222. 完全二叉树的节点个数(2022.08.10)
    谈谈 Redis 主从复制模式
    授权规则及规则持久化
  • 原文地址:https://blog.csdn.net/qq_36733838/article/details/127745957