I’m currently facing the issue that I want to trigger a Systemd unit when another unit get reloaded – not restartet. This is what I achived so far:
[Unit] After=teleport.service Requires=teleport.service PartOf=teleport.service [Service] ExecStart=/usr/bin/bash -c "Reloaded gracefully | /usr/bin/logger"
But that is only working using systemctl restart teleport. Reload doesn’t work. How can this be achived without touching the original teleport.service unit?
Advertisement
Answer
Found out that this can be easily achived by drop-in files. Instead of writing a new unit drop-in files can be used like this:
You can create drop-in files in /etc/systemd/… for units defined in /lib or /usr/lib: /etc/systemd/system/teleport.service.d/override.conf
[Service] ExecReload= ExecReload=/usr/bin/bash -c "/bin/kill -HUP $MAINPID; usr/bin/bash -c "Reloaded gracefully | /usr/bin/logger"
First the defined attribute needs to be unset. What happens directly after [Service].