id3fsd: drop terminal unless verbose
authorIan Beckwith <ianb@erislabs.net>
Tue, 19 Oct 2010 14:30:30 +0000 (15:30 +0100)
committerIan Beckwith <ianb@erislabs.net>
Tue, 19 Oct 2010 14:33:22 +0000 (15:33 +0100)
sbin/id3fsd

index 0809985..f55d0c1 100755 (executable)
@@ -21,6 +21,8 @@ use strict;
 use Getopt::Long qw(Configure);
 use ID3FS::DB;
 use ID3FS::Fuse;
+use POSIX;
+
 use vars qw($me);
 $me=($0=~/(?:.*\/)?(.*)/)[0];
 
@@ -48,6 +50,22 @@ my $db=ID3FS::DB->new($me, $verbose, 0, $source, $dbpath);
 exit unless($db);
 
 my $fuse=ID3FS::Fuse->new($db, $source, $mountpoint, $verbose, $tagdepth);
+
+# disassociate from terminal
+unless($verbose)
+{
+    my $pid=fork();
+    if(defined($pid))
+    {
+       exit if($pid);   # parent
+       POSIX::setsid(); # child
+    }
+    else
+    {
+       print "$me: couldn't drop terminal: $!\n";
+    }
+}
+
 $fuse->run();
 
 sub usage