zhcn 技术 手机 非公開: 如何在 Linux 上启动时自动启动服务?

如何在 Linux 上启动时自动启动服务?

系统管理员需要了解的一件重要事情是如何在启动时配置服务,以便它们在服务器重新启动时自动启动

重新启动服务器的原因可能有多种,包括:

  • 每周/每月时间表
  • 由于硬件/内核问题导致的意外问题

通过正确的配置,您不必每次重新启动时都手动启动它。

一点自动化。不是吗?

以下示例来自在DigitalOcean服务器上测试的两个流行发行版。

如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

CentOS 或 RHEL 6.x

以下示例使用 Apache HTTP Server,但对于 Red Hat Enterprise Linux (RHEL) 或 CentOS 6 版本上启动时启动的任何其他服务,步骤都是相同的。

您可以保留任何您喜欢的脚本文件名,但这里我们保留httpd

  • 成为 Linux 服务器上的 root 用户。
  • 创建脚本或将其复制到/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]#

就是这样! Linux 引导期间调用httpd脚本来启动服务。

如果需要禁用自动启动服务,可以使用以下命令:

 chkconfig httpd off
chkconfig --del httpd 
如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

RHEL 或 CentOS 7.x/8.x

RHEL 7 中启动时配置服务的步骤与 RHEL 6 中略有不同。 systemd 用于管理服务。

大多数软件,例如 Apache、PHP、MySQL 和 Nginx 脚本,都会在安装过程中添加到服务中。

让我们看一下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

另请参阅这篇文章,其中描述了 systemd 和在启动时自动启动服务。

如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

乌班图

在 Ubuntu 上配置自动启动服务略有不同。我们将脚本命名为 Nginx

  • 以 root 身份登录 Ubuntu 服务器
  • 将脚本复制到/etc/init.d/文件夹
  • 运行下面的命令
update-rc.d nginx defaults
  • 重新启动服务器并验证服务是否已启动。

这对我很有帮助,我相信这对你也有好处。

系统管理总是充满乐趣且有益的。如果您想提升您在系统管理方面的职业生涯,请查看此Udemy 课程

接下来,查看如何找出 Linux 意外重启的原因。
如果您想在 CentOS 6.x 上安装/升级 PHP-FPM 5.6,请转到此处。

如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

通俗易懂的讲解《如何在Linux上开机自动启动一个服务?》您必须观看的最佳 2 个视频

Linuxのインストール、起動、接続、切断と停止(Linux学習)
https://www.youtube.com/watch?v=serbLFYKNgM&pp=ygViIExpbnV4IOOBp-i1t-WLleaZguOBq-OCteODvOODk-OCueOCkuiHquWLlemWi-Wni-OBmeOCi-OBq-OBr-OBqeOBhuOBmeOCjOOBsOOCiOOBhOOBp-OBmeOBiz8maGw9SkE%3D
システムの起動とLinuxカーネル(Linux学習)
https://www.youtube.com/watch?v=vCBgwYSymRA&pp=ygViIExpbnV4IOOBp-i1t-WLleaZguOBq-OCteODvOODk-OCueOCkuiHquWLlemWi-Wni-OBmeOCi-OBq-OBr-OBqeOBhuOBmeOCjOOBsOOCiOOBhOOBp-OBmeOBiz8maGw9SkE%3D

系统管理员需要了解的一件重要事情是如何在启动时配置服务,以便它们在服务器重新启动时自动启动

重新启动服务器的原因可能有多种,包括:

  • 每周/每月时间表
  • 由于硬件/内核问题导致的意外问题

通过正确的配置,您不必每次重新启动时都手动启动它。

一点自动化。不是吗?

以下示例来自在DigitalOcean服务器上测试的两个流行发行版。

如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

CentOS 或 RHEL 6.x

以下示例使用 Apache HTTP Server,但对于 Red Hat Enterprise Linux (RHEL) 或 CentOS 6 版本上启动时启动的任何其他服务,步骤都是相同的。

您可以保留任何您喜欢的脚本文件名,但这里我们保留httpd

  • 成为 Linux 服务器上的 root 用户。
  • 创建脚本或将其复制到/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]#

就是这样! Linux 引导期间调用httpd脚本来启动服务。

如果需要禁用自动启动服务,可以使用以下命令:

 chkconfig httpd off
chkconfig --del httpd 
如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

RHEL 或 CentOS 7.x/8.x

RHEL 7 中启动时配置服务的步骤与 RHEL 6 中略有不同。 systemd 用于管理服务。

大多数软件,例如 Apache、PHP、MySQL 和 Nginx 脚本,都会在安装过程中添加到服务中。

让我们看一下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

另请参阅这篇文章,其中描述了 systemd 和在启动时自动启动服务。

如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

乌班图

在 Ubuntu 上配置自动启动服务略有不同。我们将脚本命名为 Nginx

  • 以 root 身份登录 Ubuntu 服务器
  • 将脚本复制到/etc/init.d/文件夹
  • 运行下面的命令
update-rc.d nginx defaults
  • 重新启动服务器并验证服务是否已启动。

这对我很有帮助,我相信这对你也有好处。

系统管理总是充满乐趣且有益的。如果您想提升您在系统管理方面的职业生涯,请查看此Udemy 课程

接下来,查看如何找出 Linux 意外重启的原因。
如果您想在 CentOS 6.x 上安装/升级 PHP-FPM 5.6,请转到此处。

如何在 Linux 上启动时自动启动服务?
如何在 Linux 上启动时自动启动服务?

通俗易懂的讲解《如何在Linux上开机自动启动一个服务?》您必须观看的最佳 2 个视频

Linuxのインストール、起動、接続、切断と停止(Linux学習)
https://www.youtube.com/watch?v=serbLFYKNgM&pp=ygViIExpbnV4IOOBp-i1t-WLleaZguOBq-OCteODvOODk-OCueOCkuiHquWLlemWi-Wni-OBmeOCi-OBq-OBr-OBqeOBhuOBmeOCjOOBsOOCiOOBhOOBp-OBmeOBiz8maGw9SkE%3D
システムの起動とLinuxカーネル(Linux学習)
https://www.youtube.com/watch?v=vCBgwYSymRA&pp=ygViIExpbnV4IOOBp-i1t-WLleaZguOBq-OCteODvOODk-OCueOCkuiHquWLlemWi-Wni-OBmeOCi-OBq-OBr-OBqeOBhuOBmeOCjOOBsOOCiOOBhOOBp-OBmeOBiz8maGw9SkE%3D