[vdr] [RFC] Shutdown rewrite for 1.5.x

Udo Richter udo_richter at gmx.de
Fri Feb 16 20:49:16 CET 2007

Darren Salt wrote:
>> I guess the only situation that may cause a problem is if the VDR never
>> shuts down, eg. has no shutdown script at all. It must have some "Min User
>> Inactivity" setting, or else live viewing could be interrupted by the
>> automatic update.
> The user inactivity setting isn't relevant to that, AFAICS.

If you want to do the update while there's no ongoing activity, then 
you'll need some kind of user inactivity, otherwise a live viewer would 
be interrupted instantly.

>> For example, a plugin may be possible that reacts on a SVDRP command
>> (request for update), and that sets a temporary shutdown script (calls
>> Shutdown.SetShutdownCommand()). As soon as the script exists, the
>> inactivity shutdown will be back, but instead of shutting down, the script
>> stops VDR, installs the update and restarts.
> (Did you mean "exits"?)

Actually, exists, in the sense that the name of a script has been set 
using the Shutdown.SetShutdownCommand() call.

> The local admin may have disabled SVDRP or the SVDRP port may be in use
> (perhaps a buggy plugin, or maybe just bad timing). Sending a signal to the
> running vdr process works regardless.

Ok, a suggestion how this could be done in a simple and useful way:

We re-define SIGHUP, so that it doesn't terminate VDR instantly, but 
instead checks for activity. If user and vdr is inactive, act just like 
sigterm, if there's some activity, ignore the signal. An external script 
could then repeat sending the SIGHUP periodically until termination did 
succeed. Also, the SIGHUP effect is not delayed for an indefinite time 
and wont strike unexpected / needs thoughts on how to cancel the SIGHUP 
if you change your mind.

And on SVDRP:
Since the SVDRP rewrite is on the todo list anyway, we could add support 
to do SVDRP on unix domain sockets, not just TCP. Domain sockets are 
represented by files (like for example /etc/vdr/svdrp.socket) and access 
rights are controlled by the file system. This would allow to open SVDRP 
only for the local root, or just for the local video user group.



More information about the vdr mailing list