使用 systemd 在 Linux 中启动时运行脚本
简介 在本文中,我们将配置我们的 Linux 计算机以在启动时自动运行脚本。就本文而言,我们将使用systemd服务。 顺便说一句,我使用的是 Arch Linux,所以如果使用不同的发行版有任何不同,请不要犹豫发表评论。 [](https://res.cloudinary.com/practicaldev/image/fetch/s--RBhAxB12--/c_limit%2Cf_auto%2C
简介
在本文中,我们将配置我们的 Linux 计算机以在启动时自动运行脚本。就本文而言,我们将使用systemd
服务。
顺便说一句,我使用的是 Arch Linux,所以如果使用不同的发行版有任何不同,请不要犹豫发表评论。
[](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.service
的 Unit 文件 来定义一个 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 手册页了解更多信息。
我希望你觉得这有帮助。如果您觉得这有帮助,请留下点赞、评论和分享,您也可以考虑给我买咖啡。
更多推荐
所有评论(0)