美文网首页
Linux CentOS7 设置开机启动

Linux CentOS7 设置开机启动

作者: Bouger | 来源:发表于2019-08-16 00:30 被阅读0次

    设置开机启动

    • 方法一:修改/etc/rc.local脚本方式
    • 方法二:在/etc/rc.d/init.d 添加可执行脚本程序
    • 方法三:通过systemd添加自定义服务启动

    方法一(rc.local):

    1. 编辑rc.local文件,添加开机启动语句:
    [root@localhost /]# vim /etc/rc.local
    

    su - root -c '/usr/local/autostart.sh start'

    语法 su - <username> -c '<patch>/<name>.sh start'

    1. 检查/ect/rc.local 的执行权限

    由于在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权

    [root@localhost /]# ll /etc/rc.local
    lrwxrwxrwx. 1 root root 13 8月  12 06:09 /etc/rc.local -> rc.d/rc.local
    
    1. "==/etc/rc.local -> rc.d/rc.local=="的含义是:编辑/etc/rc.local 文件内容,同时写入/etc/rc.d/rc.local 文件中,所以要再检查/etc/rc.d/rc.local文件的权限
    [root@localhost /]# ll /etc/rc.d/rc.local
    -rw-r--r--. 1 root root 477 6月  10 13:35 /etc/rc.d/rc.local
    
    1. 我们注意到/etc/rc.d/rc.local 仅有读权限,所以为该文件添加全权限
    [root@localhost /]# chmod 777 /etc/rc.d/rc.local
    [root@localhost /]# ll /etc/rc.d/rc.local
    -rwxrwxrwx. 1 root root 548 7月   3 14:57 /etc/rc.d/rc.local
    

    方法二(chkconfig)

    /etc/init.d是/etc/rc.d/init.d的软链接,可以通过ll命令查看。当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的运行级别确定不同的启动级别。

    将启动脚本放置/etc/rc.d/init.d目录下

    [root@localhost /]#  mv  /opt/script/autostart.sh /etc/rc.d/init.d
    

    增加脚本的执行权限

    [root@localhost /]# chmod +x  /etc/rc.d/init.d/autostart.sh
    

    添加脚本至开机自动启动项

    [root@localhost /]# cd /etc/rc.d/init.d
    [root@localhost /]# chkconfig --add autostart.sh
    [root@localhost /]# chkconfig autostart.sh on
    

    检查脚本启动项是否设置成功

    [root@localhost /]#  chkconfig --list | grep autostart
    supervisord     0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
    

    成功!

    Linux启动优先级

    运行级别就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
    不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)

    # 缺省的运行级,RHS用到的级别如下:
    0:关机
    1:单用户模式
    2:无网络支持的多用户模式
    3:有网络支持的多用户模式
    4:保留,未使用
    5:有网络支持有X-Window支持的多用户模式
    6:重新引导系统,即重启
    
    # 对各个运行级的详细解释:
    0 为停机,机器关闭。
    1 为单用户模式,就像Win9x下的安全模式类似。
    2  为多用户模式,但是没有NFS支持。 
    3  为完整的多用户模式,是标准的运行级。
    4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
    5  就是X11,进到X Window系统了。
    6  为重启,运行init 6机器就会重启。
    

    方法三(systemctl)

    CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下。编辑好服务脚本放置此目录下。

    1. 使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。
    [root@localhost /]# systemctl status /usr/lib/systemd/system/tomcat.service
    [root@localhost /]# systemctl start /usr/lib/systemd/system/tomcat.service 
    
    1. 添加可执行权限:
    [root@localhost /]# chmod 754 /usr/lib/systemd/system/tomcat.service
    

    3.设置为开机自启动:

    [root@localhost /]# systemctl enable tomcat.service
    

    常用命令(以tomcat为例)

    #启动某服务
    systemctl start   tomcat.service
    #停止某服务
    systemctl stop   tomcat.service
    #重启某服务
    service tomcat   restart
    #或
    systemctl restart   tomcat.service
    #使某服务自动启动(如tomcat服务)
    systemctl enable   tomcat.service
    #使某服务不自动启动
    systemctl disable   tomcat.service
    #检查服务状态
    systemctl   status tomcat.service //(服务详细信息)
    systemctl   is-active tomcat.service //(仅显示是否Active)
    #显示所有已启动的服务
    systemctl   list-units --type=service
    

    设置完成后reboot命令重启服务器查看开机启动服务是否正常运行。

    具体脚本编辑方法请至相关引用中查看


    引用

    CentOS7添加开机启动服务或脚本

    CentOS7利用systemctl添加自定义系统服务

    相关文章

      网友评论

          本文标题:Linux CentOS7 设置开机启动

          本文链接:https://www.haomeiwen.com/subject/uhsxsctx.html