[vdr] [patch] avoid inheritance of file descriptors

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Mon Dec 10 19:32:00 CET 2007


On 12/10/07 15:28, Deti Fliegl wrote:
> Hi,
> 
> I think there is a problem in calling external programs from plugins. If 
> such a program takes some while for execution (even in background) it 
> gets inherited all file descriptors of VDR. This prevents vdr from 
> zapping to another channel or even from restarting properly. You will 
> see messages like:
> 
> ERROR: /dev/dvb/adapter0/dvr0: Device or resource busy
> or
> ERROR (svdrp.c,84): Address already in use
> 
> Reason: By default unix inherits all file descriptors to child processes 
> when calling exec*(...) or system(...). You can avoid this by setting 
> FD_CLOEXEC on all file descriptors that should not be inherited.
> 
> Patch:
> ...
> Comments, ideas?

Doesn't SystemExec() (see tools.c) take care of this?

Klaus



More information about the vdr mailing list