0x01 创建一个新的systemd
服务配置文件
例如myscript.service
:
sudo nano /etc/systemd/system/myscript.service
0x02在文件中添加以下内容
[Unit]
Description=My Script Service
After=network.target
[Service]
ExecStart=/path/to/myscript.sh
Restart=always
[Install]
WantedBy=multi-user.target
0x03保存并关闭文件后,重新加载systemd
配置
sudo systemctl daemon-reload
0x04启动新的服务并将其设置为开机启动
sudo systemctl enable myscript.service
sudo systemctl start myscript.service
现在,当您的系统启动时,systemd
服务管理器将自动启动myscript.service
服务,并在网络服务启动之后运行/path/to/myscript.sh
脚本。
请注意,systemd
服务管理器是现代Linux系统中常见的服务管理器,但并不是所有的Linux系统都使用systemd
。如果您使用的是不同的服务管理器,请查阅相关文档以了解如何在您的系统上创建开机启动脚本。
0X05问答
0x051 After为系统所有服务启动后再启动该怎么填
如果您希望在所有系统服务启动后再启动您的systemd
服务,可以将After
选项设置为systemd-udevd.service
,该服务在所有其他系统服务之后启动。例如,将myscript.service
的After
选项设置为:
After=systemd-udevd.service
0x052 WantedBy的值有哪些?分别是什么意思
WantedBy
是systemd
服务配置文件中的一个选项,用于指定哪个系统级别(即运行级别)或目标需要启用该服务。
在systemd
中,运行级别和目标都是用一个特殊的单元(unit)文件来表示的。这些单元文件包含了用于管理系统各个方面的服务和进程的配置信息。WantedBy
选项告诉systemd
在哪些运行级别或目标中启用服务。下面是WantedBy
的常见值及其含义:
multi-user.target
:启用服务在多用户模式下(即默认的命令行终端模式)运行。这是大多数服务的默认设置。graphical.target
:启用服务在图形模式下(即桌面环境)运行。rescue.target
:启用服务在救援模式下(即恢复模式)运行,该模式提供了诊断和修复系统的选项。default.target
:启用服务在系统的默认目标(即/etc/systemd/system/default.target
所指定的目标)中运行。sysinit.target
:启用服务在系统初始化期间运行,即在所有其他系统服务之前运行。shutdown.target
:启用服务在系统关闭时运行。
这些选项可以组合在一起,以在多个目标中启用服务。例如,WantedBy=multi-user.target graphical.target
将启用服务在多用户模式和图形模式下运行。