How can a systemd service detect that system is going to power off?
Clash Royale CLAN TAG#URR8PPP
up vote
4
down vote
favorite
I have a systemd service controlling some hardware, let's take lamps as a good example. It is OK to restart the service, or reboot the PC, because it is safe that the lamps are left switched on for some while.
However if (and only if) the system is going to halt (power off), I want to do not only the regular cleanup, but also to switch the lights off, i.e. to stop the service in a sligthly different way.
In all mentioned cases (service restart, reboot, halt) the ExecStop command is executed the same way. How can I distinguish between these cases or otherwise know if systemd is doing poweroff or not?
systemd shutdown
add a comment |Â
up vote
4
down vote
favorite
I have a systemd service controlling some hardware, let's take lamps as a good example. It is OK to restart the service, or reboot the PC, because it is safe that the lamps are left switched on for some while.
However if (and only if) the system is going to halt (power off), I want to do not only the regular cleanup, but also to switch the lights off, i.e. to stop the service in a sligthly different way.
In all mentioned cases (service restart, reboot, halt) the ExecStop command is executed the same way. How can I distinguish between these cases or otherwise know if systemd is doing poweroff or not?
systemd shutdown
2
The target will differ.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:44
@IgnacioVazquez-Abrams Yes, but I don't know a way to the get the current target: serverfault.com/a/835648
â VPfB
Oct 29 '17 at 15:58
1
Hint: Write a second service file.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:59
add a comment |Â
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I have a systemd service controlling some hardware, let's take lamps as a good example. It is OK to restart the service, or reboot the PC, because it is safe that the lamps are left switched on for some while.
However if (and only if) the system is going to halt (power off), I want to do not only the regular cleanup, but also to switch the lights off, i.e. to stop the service in a sligthly different way.
In all mentioned cases (service restart, reboot, halt) the ExecStop command is executed the same way. How can I distinguish between these cases or otherwise know if systemd is doing poweroff or not?
systemd shutdown
I have a systemd service controlling some hardware, let's take lamps as a good example. It is OK to restart the service, or reboot the PC, because it is safe that the lamps are left switched on for some while.
However if (and only if) the system is going to halt (power off), I want to do not only the regular cleanup, but also to switch the lights off, i.e. to stop the service in a sligthly different way.
In all mentioned cases (service restart, reboot, halt) the ExecStop command is executed the same way. How can I distinguish between these cases or otherwise know if systemd is doing poweroff or not?
systemd shutdown
edited Oct 29 '17 at 16:40
asked Oct 29 '17 at 15:39
VPfB
40528
40528
2
The target will differ.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:44
@IgnacioVazquez-Abrams Yes, but I don't know a way to the get the current target: serverfault.com/a/835648
â VPfB
Oct 29 '17 at 15:58
1
Hint: Write a second service file.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:59
add a comment |Â
2
The target will differ.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:44
@IgnacioVazquez-Abrams Yes, but I don't know a way to the get the current target: serverfault.com/a/835648
â VPfB
Oct 29 '17 at 15:58
1
Hint: Write a second service file.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:59
2
2
The target will differ.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:44
The target will differ.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:44
@IgnacioVazquez-Abrams Yes, but I don't know a way to the get the current target: serverfault.com/a/835648
â VPfB
Oct 29 '17 at 15:58
@IgnacioVazquez-Abrams Yes, but I don't know a way to the get the current target: serverfault.com/a/835648
â VPfB
Oct 29 '17 at 15:58
1
1
Hint: Write a second service file.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:59
Hint: Write a second service file.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:59
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f401240%2fhow-can-a-systemd-service-detect-that-system-is-going-to-power-off%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
2
The target will differ.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:44
@IgnacioVazquez-Abrams Yes, but I don't know a way to the get the current target: serverfault.com/a/835648
â VPfB
Oct 29 '17 at 15:58
1
Hint: Write a second service file.
â Ignacio Vazquez-Abrams
Oct 29 '17 at 15:59