HCRM博客

如何设置 CentOS 开机自启动服务?

CentOS开机启动配置详解

在服务器上安装的各种中间件,一般都需要配置成开机自启动,但是有些中间件的安装过程中并没有提供相关配置开机自启动的说明文档,今天和各位大朋友们聊一聊Centos上配置服务开机自启动的几种方式。

一、直接在/etc/rc.d/rc.local中添加服务启动命令

如何设置 CentOS 开机自启动服务?-图1
(图片来源网络,侵权删除)

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来配置开机自启动服务。

如何设置 CentOS 开机自启动服务?-图2
(图片来源网络,侵权删除)

1、添加服务到chkconfig列表

   chkconfig add httpd

2、开启服务开机自动启动

   chkconfig httpd on

3、查看chkconfig列表

   chkconfig list

4、删除服务

   chkconfig del httpd

5、运行级别和启动顺序的概念

等级0表示关机

如何设置 CentOS 开机自启动服务?-图3
(图片来源网络,侵权删除)

等级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管理的服务

如果服务未正确配置为开机自启动,可以使用前述方法重新配置,然后手动启动服务并检查日志以确定问题所在。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/11981.html

分享:
扫描分享到社交APP
上一篇
下一篇