简介

在本文中,我们将配置我们的 Linux 计算机以在启动时自动运行脚本。就本文而言,我们将使用systemd服务。

顺便说一句,我使用的是 Arch Linux,所以如果使用不同的发行版有任何不同,请不要犹豫发表评论。

[linux-when.gif](https://res.cloudinary.com/practicaldev/image/fetch/s--RBhAxB12--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://c .tenor.com/HxmBOrGxs8EAAAAM/linux-when.gif)

什么是systemd

systemd 是一套用于 Linux 系统的基本构建块。它提供了一个系统和一个作为 PID 运行并启动系统其余部分的服务管理器。 systemd 提供了积极的并行化能力,使用套接字和 D-Bus 激活来启动服务、跟踪进程等。

您可以在此处阅读有关 systemd的更多信息。

用于自省和控制 systemd 的主要命令是systemctl

步数

  • 首先,我们将在/usr/local/sbin中创建一个 Bash 脚本,例如100030 notifyRemote.sh 100031 100029,它会在远程机器启动后通知它。

  • 我们将通过运行以下命令使文件可执行:

sudo chmod +x /usr/local/sbin/notifyRemote.sh
  • /etc/systemd/system/中创建一个名为startup.serviceUnit 文件 来定义一个 systemd 服务。您需要 root 访问权限 (sudo) 才能进行更改或创建这些文件。

  • 我们将通过运行以下命令使文件可执行:

sudo chmod +x /etc/systemd/system/startup.service
  • /etc/systemd/system/startup.service中,我们将如下粘贴到文件中:
[单元]
描述u003d我的启动

[服务]
ExecStartu003d/usr/local/sbin/notifyRemote.sh

[安装]
WantedByu003dmulti.user.target
  • ExecStart 是这里最重要的键,因为它指向将在服务启动时运行的 Bash 程序。

  • 我们可以通过运行sudo systemctl start startup.service来测试服务,确认脚本会运行

  • 现在要使服务在启动时运行,我们将运行命令

sudo systemctl 启用启动服务

结论

现在我们应该成功地创建了一个脚本,它可以在我们启动 Linux 机器时自动运行。

您可以查阅systemd 手册页了解更多信息。

我希望你觉得这有帮助。如果您觉得这有帮助,请留下点赞、评论和分享,您也可以考虑给我买咖啡。

Logo

更多推荐