On a clean v9.4 install with a trivial background process running that ignores signals- Rebooting would display a stop job which is in progress (for the mentioned process as expected) with no limits, yet running sudo systemctl show --all shows that DefaultTimeoutStopUSec=1min 30s
This doesn’t seem to be correct. Is there something I might be missing here?
The service file at /etc/systemd/system/ is as follows:
[Unit]
Description=Dummy Service that only waits for 60s
After=default.target
[Service]
Type=simple
ExecStart=/usr/local/bin/dummy
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
Did you reload the configuration with systemctl daemon-reload after you made changes? Somehow the process seems to keep hanging. Maybe check if the process is in an uninterruptible sleep (does not react to any signals).
ps aux | grep ' D '
or maybe increasing the LogLevel for systemd in /etc/systemd/system.conf will tell us some more:
Yep, have made sure to reload after changes.
I’ve purposely written the service to ignore signals so I could see the stop job messages on shutdown- I am concerned with why the stop job always shows “no limit” even when a limit has been configured.
I initially noticed this issue through occasionaly seeing other services take a while longer than usual and display these stop messages with no limits. To create an easily reproducable example, I wrote this dummy service that ignores all SIGKILL and SIGTERM signals for 60 seconds.
My assumption is that on a clean Rocky build, systemd should display a finite limit on the stop job, especially since it is configured as such.
Okay, now I get it. I was able to reproduce it.
The correct timeout settings are being applied, though. Even if set in the unit file itself, it times out correctly, but no matter what, it shows ‘no limit’.