[systemd-devel] rc-local.service and its future in systemd?
Aki Ketolainen
akik at mykolab.com
Mon Apr 24 17:28:41 UTC 2023
> If you'd still like to continue using /etc/rc.d/rc.local, and it would
> be
> enough for it to be executed "after boot", IOW, after the default
> runlevel at boot is reached, the following four commands might help
> you:
>
> $ cat >/tmp/order-last.conf <<EOConf
> [Unit]
> After=default.target
>
> [Service]
> StandardOutput=journal+console
> StandardError=journal+console
> EOConf
> $ mkdir -p /etc/systemd/system/rc-local.service.d/
> $ mv /tmp/order-last.conf /etc/systemd/system/rc-local.service.d/
> $ systemctl daemon-reload
>
> Then, make sure `rc-local.service` is enabled.
>
> default.target should be a symlink to another target, likely multi-user
> or graphical.
Did you test this yourself? I couldn't get it to work. If I don't
disable systemd-rc-local-generator,
it'll create a multi-user.target.wants for rc-local.service in
/run/systemd.
rc-local.service is also referenced in multiple other service files in
/usr/lib/systemd/system.
I arrived into this following config that is now working:
1)
# /etc/systemd/system/rc-local.service.d/override.conf
[Unit]
After=systemd-user-sessions.service
[Install]
WantedBy=default.target
2)
mkdir /root/systemd
mv /usr/lib/systemd/system-generators/systemd-rc-local-generator
/root/systemd/
ln -s /dev/null
/usr/lib/systemd/system-generators/systemd-rc-local-generator
3)
chmod 700 /etc/rc.d/rc.local
systemctl enable rc-local.service
As one Red Hat employee once said: "And I'm pretty sure that the people
who still insist
on using it would shout at us very loudly if rc-local.service were
removed...".
I hope rc-local.service can be kept in systemd in the future.
Best regards,
Aki
P.S. My hunch was correct and rc.local is now
(After=systemd-user-sessions.service) ran after crond.
root 1045 0.0 0.0 3272 1792 ? Ss 19:58 0:00
/usr/sbin/atd -f
root 1046 0.0 0.0 224304 3584 ? Ss 19:58 0:00
/usr/sbin/crond -n
root 1047 0.0 0.0 222940 3328 ? Ss 19:58 0:00
/bin/bash /etc/rc.d/rc.local start
root 1049 0.0 0.0 224692 3328 ? R 19:58 0:00 \_
ps auxwwf
root 1050 0.0 0.0 238216 3200 ? S 19:58 0:00 \_
sort -n -k 2,2
cat /etc/rc.d/rc.local
#!/bin/bash
date > /var/tmp/boot.ps
ps auxwwf | sort -n -k 2,2 >> /var/tmp/boot.ps
More information about the systemd-devel
mailing list