设置开机启动
- 方法一:修改/etc/rc.local脚本方式
- 方法二:在/etc/rc.d/init.d 添加可执行脚本程序
- 方法三:通过systemd添加自定义服务启动
方法一(rc.local):
- 编辑rc.local文件,添加开机启动语句:
[root@localhost /]# vim /etc/rc.local
su - root -c '/usr/local/autostart.sh start'
语法 su -
- 检查/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
- "==/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
- 我们注意到/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目录下。编辑好服务脚本放置此目录下。
- 使用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
- 添加可执行权限:
[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添加自定义系统服务