📜  Linux 中的服务引导持久性(1)

📅  最后修改于: 2023-12-03 15:17:22.420000             🧑  作者: Mango

Linux 中的服务引导持久性

在 Linux 系统中,一些服务可能需要在系统引导时自动启动。这种自动启动可以通过使用 systemd service 来实现。通过 systemd service,可以定义服务如何启动、何时启动、以及启动后应如何运行。本文将介绍如何创建 systemd service 文件,并将其应用于系统引导。

创建 systemd service 文件

systemd service 文件位于 /lib/systemd/system//etc/systemd/system/ 目录下。通常在 /etc/systemd/system/ 中创建 service 文件以便管理,因为此目录下的 service 优先级高于 /lib/systemd/system/ 目录下的 service。

创建一个新的 service 文件,需要遵循以下步骤:

  1. 打开一个新的文本编辑器。
  2. 输入以下内容:
[Unit]
Description = [service name]
After = network.target

[Service]
ExecStart = [path to executable file]
Restart = on-failure

[Install]
WantedBy = multi-user.target

在这个例子中,[service name] 是指定服务的名称,[path to executable file] 是指定服务启动的可执行文件路径。ExecStart 项定义了如何启动服务。Restart 告诉 systemd 当服务失败时应该如何重新启动。After = network.target 表示只有当网络完成初始化后才会启动服务。WantedBy = multi-user.target 表示服务将在系统引导时启动。这个例子只是service的一个示例,更多的service options 可以在 man systemd.service 中查看。

  1. 保存文件并退出。
应用 systemd service 文件

创建好 systemd service 文件后,现在将其应用于系统引导。

  1. 运行以下命令以重新加载 systemd daemon:
sudo systemctl daemon-reload
  1. 运行以下命令以启用服务,使其在系统引导时自动启动:
sudo systemctl enable [service name]

在这个例子中,[service name] 是指向您新 service 文件的路径,不包含扩展名。如果您位于 /etc/systemd/system/ 目录下创建了一个名为 myservice.service 的文件,则 sudo systemctl enable myservice 将启用该服务。

  1. 运行以下命令以启动该服务:
sudo systemctl start [service name]

在这个例子中,[service name] 是您要启动的服务的名称。如果您位于 /etc/systemd/system/ 目录下创建了一个名为 myservice.service 的文件,则 sudo systemctl start myservice 将启动该服务。

总结

在 Linux 系统中使用 systemd可以方便管理服务的启动和运行。使用 systemd service 可以创建服务,并将其应用到系统引导。在本文中,我们提供了创建 systemd service 文件和应用服务的指南。