[vdr] New shutdown procedure not working as expected

Petri Helin phelin at googlemail.com
Wed Aug 1 23:33:42 CEST 2007


Hi,

It seems that the new shutdown procedure introduced for versions 1.5.x 
is (at least for me) not working as expected. The problem is that it 
does not recognize correctly whether VDR was started manually or not. In 
fact it thinks every time that it has been started manually. I traced 
the problem to the SystemExec call in 
cShutdownHandler::CallShutdownCommand where Setup.NextWakeupTime is 
updated only if the SystemExec call returns 0. i changed it to accept 
all values greater or equal to 0 and now Setup.NextWakeupTime gets 
updated properly. Can some explain me why 0 is expected?

Here is the patch that I came up with:

--- shutdown.c.orig     2007-08-02 00:14:49.000000000 +0300
+++ shutdown.c  2007-08-02 00:15:10.000000000 +0300
@@ -126,7 +126,7 @@
    time_t Delta = WakeupTime ? WakeupTime - time(NULL) : 0;
    cString cmd = cString::sprintf("%s %ld %ld %d \"%s\" %d", 
shutdownCommand, WakeupTime, Delta, Channel, *strescape(File, "\"$"), 
UserShutdown);
    isyslog("executing '%s'", *cmd);
-  if (SystemExec(cmd, true) == 0)
+  if (SystemExec(cmd, true) >= 0)
       Setup.NextWakeupTime = WakeupTime; // Remember this wakeup time 
for comparison on reboot
  }


-Petri



More information about the vdr mailing list