如何在Linux系统启动时自动启动服务?

对于服务器管理员来说,了解如何在启动时配置服务是至关重要的,这样当服务器重新启动时,它们会自动启动。

服务器重新启动可能有各种原因,包括以下原因。

  • 按周、按月计划
  • 由于硬件/内核问题而意外重启

通过正确配置,您无需在每次重新启动时手动启动它们。

有点自动化。不是吗?

以下示例适用于在服务器上测试的两个流行的发行版。

CentOS或RHEL 6.x

在下面的示例中,我使用了一个Apache HTTP服务器,但是在Red Hat Enterprise Linux(RHEL)或CentOS 6版本中,启动其他任何服务的过程都是相同的。

您可以保留任何脚本文件名,在这里我保留了httpd

  • 以root用户身份登录Linux服务器
  • 在/etc/init.d/下创建或复制您的脚本
[root@Chandan init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[root@Chandan init.d]#

我们将使用Linux或CentOS上默认提供的chkconfig实用程序。

  • 使用chkconfig--add参数将脚本添加到启动时启动
[root@Chandan init.d]# chkconfig --add httpd
[root@Chandan init.d]# chkconfig httpd on
  • 使用--list确认脚本已成功添加
[root@Chandan init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@Chandan 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)时,它们会被添加到services中。

让我们以PHP-FPM为例。

首先,让我们查看php-fpm的状态(假设您已经在/usr/lib/systemd/system/中有脚本)

[root@instance-1 ~]# 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) 
[root@instance-1 ~]#

如您所见,状态为disabled,这意味着它未配置为在启动时启动。

让我们使用systemctl启用php-fpm在启动时启动

[root@instance-1 ~]# 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.
[root@instance-1 ~]#

现在,让我们查看状态

[root@instance-1 ~]# systemctl status php-fpmphp
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)    Active: inactive (dead) 
[root@instance-1 ~]#

php-fpm已经准备好在启动时启动。让我们通过重新启动服务器来测试它。

如果您需要禁用启动时启动服务,则可以使用以下命令

systemctl disable php-fpm

您可能还喜欢查看此帖子,了解有关的更多信息。

Ubuntu

在Ubuntu中配置自动启动服务略有不同。假设脚本名为Nginx

  • 使用root登录Ubuntu服务器
  • 将脚本复制到/etc/init.d/文件夹中
  • 执行以下命令
update-rc.d nginx defaults
  • 重新启动服务器以确保服务已启动。

这对我有所帮助,我相信对你也会有益处。

系统管理员工作总是充满乐趣和挑战的,如果你想在这方面提升自己的职业生涯,你可以参考这个Udemy course

接下来,看一看如何find Linux sudden reboot reason
如果你想要install/upgrade PHP-FPM 5.6 on CentOS 6.x,请点击这里。

类似文章