[systemd-devel] Calling shutdown while executing a service

Christoph Pleger Christoph.Pleger at cs.tu-dortmund.de
Wed Jun 10 00:52:25 PDT 2015


Hello,

>> /usr/local/sbin/local is a bash script which calls several functions.
>> When
>> one of these functions fails, i.e. returns another value than zero, the
>> script calls this function:
>>
>> die() {
>>   STRING=$1
>>   echo >&2 "Error occured in function ${STRING}"
>>   echo "Press any key to reboot (sorry for your inconvenience)"
>>   read -n 1
>>   shutdown -r now
>> }
>>
>> Now I have the case that one of the functions fails. But after pressing
>> a
>> key, the computer does not reboot immediately, but schedules the reboot
>> for approximately two minutes in the future and then continues to
>> execute
>> functions, till the two minutes are over.
>
> Most likely systemd is waiting for your service (or some other
> service) to finish before it proceeds with shutting down.
>
> Consider issuing "systemd-analyze set-log-level debug" before you try
> this. This turns on debug output which might tell you what precisely
> systemd is waiting for.

I added that line at the beginning of die(), but that did not result in
additional screen messages. But I am sure that the delayed shutdown
happens because systemd is waiting for my service to finish. Is there
another way to prevent that, than adding an exit command at the end of
die()?

Regards
  Christoph



More information about the systemd-devel mailing list