add "-d" option for daemon mode

This commit is contained in:
Rafał Kwaśny
2011-04-14 20:37:15 +02:00
parent 2e95761e26
commit 81cf4e1235
+21 -1
View File
@@ -47,11 +47,13 @@ my $apname = "ShairPort $$ on " . `hostname`;
# password - required to connect
# for no password, set:
my $password = '';
my $daemon;
# suppose hairtunes is under same directory
my $hairtunes_cli = $FindBin::Bin . '/hairtunes';
GetOptions("apname=s" => \$apname,
"password=s" => \$password);
"password=s" => \$password,
"d" => \$daemon);
# use --apname MyName --password secret as arguments
@@ -152,6 +154,24 @@ my $sel = new IO::Select($listen);
print "listening...\n";
if ($daemon) {
use POSIX;
POSIX::setsid or die "setsid: $!";
my $pid = fork();
if ($pid < 0) {
die "fork: $!";
} elsif ($pid) {
exit 0;
}
chdir "/";
umask 0;
open (STDIN, "</dev/null");
open (STDOUT, ">/dev/null");
open (STDERR, ">&STDOUT");
};
while (1) {
my @waiting = $sel->can_read;
foreach $fh (@waiting) {