add "-d" option for daemon mode
This commit is contained in:
committed by
Martin Spasov
parent
2e95761e26
commit
1ede42da96
+21
-1
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user