我最近创建了我的第一个自定义 systemd 服务,以便在我的机器启动序列的早期运行脚本。自定义.service
文件被复制到/etc/systemd/system
,据我了解,这是未通过包或操作系统分发的一部分部署的自定义服务的正确位置。
它是一种oneshot
类型服务,它在网络堆栈和 dhcpcd 启动之前调用一个 shell 脚本来动态设置主机名。这是服务定义:
[Unit]
Description=Set hostname on startup, based on hardware serial number
Wants=local-fs.target
After=local-fs.target
Before=systemd-hostnamed.service network.target
[Service]
Type=oneshot
ExecStart=/SOMEPATH/hostname-from-serialnumber.sh
[Install]
WantedBy=systemd-hostnamed.service network.target
我不确定 shell 脚本的最佳位置是什么,所以我SOMEPATH
在上面的代码块中放置了一个占位符。这个 shell 脚本的正确位置是什么,为什么?