服务器启动时自动配置服务的重要性
对于系统管理员来说,掌握如何在服务器启动时自动配置服务是一项至关重要的技能。这样,当服务器因各种原因重启后,这些服务可以无需人工干预地自动启动。
服务器重启可能由多种因素引发,包括:
- 计划性的定期维护,例如每周或每月的重启。
- 由于硬件故障或内核问题导致的意外重启。
通过正确配置服务,您可以避免每次重启后都手动启动它们的繁琐操作,从而实现一定程度的自动化,提高工作效率。
以下示例针对两个常用的服务器发行版进行了测试,即DigitalOcean服务器。
CentOS 或 RHEL 6.x 系统中的服务配置
下面的示例以 Apache HTTP 服务器为例进行说明,但该过程适用于任何需要在 Red Hat Enterprise Linux (RHEL) 或 CentOS 6 版本中启动的服务。您可以自定义脚本名称,这里我们沿用默认的 httpd。
- 首先,您需要以 root 用户身份登录 Linux 服务器。
- 接下来,在 /etc/init.d/ 目录下创建或复制您的服务脚本。
[[email protected] init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[[email protected] init.d]#
我们将使用系统默认自带的 chkconfig 工具进行配置。
- 使用
chkconfig --add
命令将脚本添加到启动项中。
[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on
- 使用
chkconfig --list
命令验证脚本是否已成功添加。
[[email protected] init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] init.d]#
至此,httpd 脚本将在 Linux 系统启动时自动执行,从而启动相应的服务。
如果您需要取消服务的自动启动,可以使用以下命令:
chkconfig httpd off
chkconfig --del httpd
RHEL 或 CentOS 7.x/8.x 系统中的服务配置
在 RHEL 7 及更高版本中,配置启动时自动启动服务的过程与 RHEL 6 有所不同。它采用 systemd 来管理服务。
大多数软件,如 Apache、PHP、MySQL 和 Nginx,在安装过程中通常会自动添加到服务列表中。
让我们以 PHP-FPM 为例进行说明。
首先,查看 php-fpm 的当前状态(假设您已经将脚本放置在 /usr/lib/systemd/system/ 目录下)。
[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[[email protected] ~]#
如您所见,该服务当前处于禁用状态,这意味着它不会在系统启动时自动运行。
使用 systemctl enable
命令启用 php-fpm 的自动启动:
[[email protected] ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[[email protected] ~]#
现在,再次检查状态:
[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: inactive (dead)
[[email protected] ~]#
现在,php-fpm 已被设置为在开机时自动启动。您可以重启服务器进行验证。
如果您需要禁用自动启动服务,则可以使用以下命令:
systemctl disable php-fpm
您可能还想参考一篇关于 systemd 和自动启动服务的文章,以便更深入地了解。
Ubuntu 系统中的服务配置
在 Ubuntu 系统中配置自动启动服务略有不同。 假设服务脚本的名称为 Nginx。
- 首先,以 root 用户身份登录 Ubuntu 服务器。
- 然后,将脚本复制到 /etc/init.d/ 文件夹中。
- 最后,执行以下命令:
update-rc.d nginx defaults
- 重启服务器以确保服务已成功启动。
希望以上内容对您有所帮助!
系统管理既有趣又充满挑战。如果您希望在该领域提升职业发展,可以考虑学习这个 Udemy 课程。
另外,您也可以进一步了解如何排查 Linux 系统意外重启的原因。
如果您需要在 CentOS 6.x 系统上安装或升级 PHP-FPM 5.6,可以点击此处查看相关教程。
如果您喜欢这篇文章,请分享给更多人!