ubuntu/debian开机自启之systemd service

我们在创建 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