I'm running Cachy, and when I update the system it sometimes asks me to restart services, one of which is yours. The problem is it hangs forever, because it waits for asus-shutdown to restart, and it doesn't because you explicitly use SendSIGKILL=no on top of a 45s delay, which effectively turns it into a forever delay.
The only things that successfully kills it is a real system shutdown because it listens to a signal from logind.
You seem to want to do this to prevent dying in the middle of a firmware write, but it doesn't feel like it's guaranteed because eventually the watchdog will kill you regardless of what systemd wants to do, and logind only really respects the blocking state for 5s, then keeps you running but moves on with the shutdown sequence.
I don't really know what the real solution would be, but right now I did:
[Service]
TimeoutStopSec=75
SendSIGKILL=yes
So at least it eventually dies.
Maybe a solution could be to actually respect SIGTERM when nothing is in the queue? I don't really know though, I'm not an expert
I'm running Cachy, and when I update the system it sometimes asks me to restart services, one of which is yours. The problem is it hangs forever, because it waits for asus-shutdown to restart, and it doesn't because you explicitly use
SendSIGKILL=noon top of a 45s delay, which effectively turns it into a forever delay.The only things that successfully kills it is a real system shutdown because it listens to a signal from
logind.You seem to want to do this to prevent dying in the middle of a firmware write, but it doesn't feel like it's guaranteed because eventually the watchdog will kill you regardless of what systemd wants to do, and logind only really respects the blocking state for 5s, then keeps you running but moves on with the shutdown sequence.
I don't really know what the real solution would be, but right now I did:
So at least it eventually dies.
Maybe a solution could be to actually respect SIGTERM when nothing is in the queue? I don't really know though, I'm not an expert