HCRM博客

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

在 CentOS 7 系统中,设置开机启动服务可以通过多种方式实现,以下是几种常见的方法:

使用 systemctl 命令

1、创建服务文件:如果需要设置开机启动的服务没有对应的系统服务单元文件,可以手动创建一个,以 nginx 为例,创建/etc/systemd/system/nginx.service 文件,内容如下:

如何设置 CentOS 7 开机启动服务?-图1
(图片来源网络,侵权删除)
   [Unit]
   Description=nginx high performance web server
   After=network.target
   [Service]
   Type=forking
   User=nginx
   Group=nginx
   ExecStart=/usr/sbin/nginx
   ExecReload=/usr/sbin/nginx s reload
   ExecStop=/usr/sbin/nginx s stop
   PrivateTmp=true
   [Install]
   WantedBy=multiuser.target

2、设置开机启动:使用systemctl enable 命令来设置服务开机启动,对于上述创建的 nginx 服务,执行以下命令:

   sudo systemctl enable nginx.service

3、启动服务:如果服务当前未运行,可以使用systemctl start 命令立即启动该服务:

   sudo systemctl start nginx.service

编辑 /etc/rc.local 文件

1、编辑文件:使用文本编辑器打开/etc/rc.local 文件,在文件末尾添加需要开机启动的命令或脚本路径。

   /usr/local/bin/my_startup_script.sh &

由于 CentOS 7 中/etc/rc.d/rc.local 的权限问题,可能需要先赋予其可执行权限:

   sudo chmod +x /etc/rc.d/rc.local

2、创建启动脚本:如果需要启动的程序比较复杂,建议将其写成一个单独的启动脚本,如/opt/script/zabbixstart.sh,并在rc.local 中调用该脚本。

使用 chkConfig 命令(适用于部分服务)

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

1、查看服务是否支持 chkconfig:并非所有服务都支持chkconfig 命令来设置开机启动,可以先尝试使用chkconfig list 命令查看系统中已安装的服务及其当前的开机启动状态。

2、设置服务开机启动:如果服务支持chkconfig,可以使用以下命令来设置其在指定的运行级别上开机启动,设置 MySQL 服务在 2、3、4、5 运行级别上开机启动:

   sudo chkconfig mysqld on

FAQs

问:如何查看服务是否已经设置为开机启动?

答:可以使用以下命令来查看服务的开机启动状态:

对于使用 systemctl 管理的服务,可以使用systemctl isenabled 命令,

  systemctl isenabled nginx.service

如果服务是通过 chkconfig 命令设置的开机启动,可以使用chkconfig list 命令查看。

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

问:设置开机启动后,服务无法正常启动怎么办?

答:如果服务无法正常启动,可能是由于以下原因之一:

服务配置文件错误,导致服务启动失败,可以检查服务的配置文件,查看是否有语法错误或其他配置问题。

系统资源不足,如内存、磁盘空间等不足,导致服务无法启动,可以使用freedf 等命令查看系统资源使用情况。

服务所依赖的其他服务未启动,导致该服务无法正常运行,可以使用systemctl listunits type=service state=failed 命令查看系统中失败的服务,并检查它们之间的依赖关系。

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

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