欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

​Linux CentOS7 设置开机启动 有大用

Linux CentOS7 设置开机启动

Bouger
字数 719阅读 603

设置开机启动

  • 方法一:修改/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添加自定义系统服务


来自  https://www.jianshu.com/p/c01408c3fa70

普通分类: