--- ./ddclient.orig 2009-01-27 20:14:02.000000000 +0100 +++ ./ddclient 2010-08-17 20:13:00.000000000 +0200 @@ -1,4 +1,3 @@ -#!/usr/bin/perl -w #!/usr/local/bin/perl -w ###################################################################### # $Id: ddclient 106 2008-12-04 18:05:23Z wimpunk $ @@ -19,6 +18,7 @@ use Getopt::Long; use Sys::Hostname; use IO::Socket; +use POSIX 'setsid'; my $version = "3.8.0"; my $programd = $0; @@ -625,6 +625,9 @@ $SIG{'KILL'} = sub { $caught_kill = 1; }; if (opt('daemon') && !opt('force')) { $SIG{'CHLD'} = 'IGNORE'; + chdir '/'; + open(STDIN, "/dev/null"); my $pid = fork; if ($pid < 0) { print STDERR "${program}: can not fork ($!)\n"; @@ -632,11 +635,10 @@ } elsif ($pid) { exit 0; } + setsid; $SIG{'CHLD'} = 'DEFAULT'; $opt{'syslog'} = 1; - open(STDOUT, ">/dev/null"); - open(STDERR, ">/dev/null"); - open(STDIN, "