CentOS开机启动配置详解
在服务器上安装的各种中间件,一般都需要配置成开机自启动,但是有些中间件的安装过程中并没有提供相关配置开机自启动的说明文档,今天和各位大朋友们聊一聊Centos上配置服务开机自启动的几种方式。
一、直接在/etc/rc.d/rc.local中添加服务启动命令
1、编辑/etc/rc.d/rc.local文件:
vi /etc/rc.d/rc.local
在文件末尾添加需要开机启动的命令,例如启动nginx:
/usr/local/nginx/sbin/nginx
2、保存并退出:按Esc
键,输入:wq
保存并退出。
3、赋予执行权限(适用于centos7):
chmod +x /etc/rc.d/rc.local
二、通过chkconfig配置服务自启动
在CentOS7之前,可以通过chkconfig来配置开机自启动服务。
1、添加服务到chkconfig列表:
chkconfig add httpd
2、开启服务开机自动启动:
chkconfig httpd on
3、查看chkconfig列表:
chkconfig list
4、删除服务:
chkconfig del httpd
5、运行级别和启动顺序的概念:
等级0表示关机
等级1表示单用户模式
等级2表示无网络连接的多用户命令行模式
等级3表示有网络连接的多用户命令行模式
等级4表示不可用
等级5表示带图形界面的多用户模式
等级6表示重新启动
三、CentOS7通过systemctl配置服务自启动
在Centos7之后,推荐使用systemctl来控制服务。
1、创建服务文件:
vim /usr/lib/systemd/system/nginx.service
文件内容示例如下:
[Unit] Description=nginx high performance web server After=network.target remotefs.target nsslookup.target [Service] Type=forking User=nginx Group=nginx ExecStart=/usr/local/nginx/sbin/nginx c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx s reload ExecStop=/usr/local/nginx/sbin/nginx s stop PrivateTmp=true [Install] WantedBy=multiuser.target
2、保存并退出:按Esc
键,输入:wq
保存并退出。
3、设置开机自启动:
systemctl enable nginx.service
4、启动服务:
systemctl start nginx.service
5、查看服务状态:
systemctl status nginx.service
6、重新启动服务:
systemctl restart nginx.service
四、其他常见问题及解决方法
FAQs
Q1: 如何更改服务的运行级别?
A1: 使用chkconfig命令可以更改服务的运行级别,将httpd设置为在等级3和5开机启动:
chkconfig level 35 httpd on
Q2: 如果服务没有在开机时启动,怎么办?
A2: 首先检查服务是否已经正确配置为开机自启动,可以使用以下命令检查服务状态:
systemctl isenabled nginx.service # 对于systemd管理的服务 chkconfig list httpd # 对于使用chkconfig管理的服务
如果服务未正确配置为开机自启动,可以使用前述方法重新配置,然后手动启动服务并检查日志以确定问题所在。