我们在创建 systemd 服务,如 /etc/systemd/system/resize-rootfs.service
要想使服务在启动时运行一次,如果在系统中,可以直接使用命令
bash
systemctl enable resize-rootfs.service
这会创建一个软链接:
/etc/systemd/system/multi-user.target.wants/resize-rootfs.service
但是我们在挂载的rootfs.img里可不能运行 systemctl enable resize-rootfs.service,正确做法是手动创建 symlink
就是把你创建的服务软链接到 multi-user.target.wants/ 目录下,当系统启动并进入 multi-user.target(正常启动状态)时,会运行你的服务 resize-rootfs.service
bash
ln -s etc/systemd/system/resize-rootfs.service etc/systemd/system/multi-user.target.wants/resize-rootfs.service
可以看到 multi-user.target.wants/ 下面有很多服务,软连接成功后你的服务也会出现于此
最终检查三点:你的脚本是 usr/local/sbin/resize-rootfs.sh
你创建的服务是:/etc/systemd/system/resize-rootfs.service
你服务的软链接是:
bash
lz@lz-System:/1t/mmount1$ ls -l etc/systemd/system/multi-user.target.wants/resize-rootfs.service
lrwxrwxrwx 1 root root 40 8月 6 16:32 etc/systemd/system/multi-user.target.wants/resize-rootfs.service -> etc/systemd/system/resize-rootfs.service