1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
use strict;
# Modules diverses
use IO::Socket;
use Getopt::Std;
# Modules services
use lib 'src';
use Service;
use Client;
use Commands;
# variables diverses
my $daemon = 0;
my $curdir = $ENV{'PWD'};
$| = 1;
# analyse
my %opts;
getopts('d',\%opts);
if(defined($opts{'d'})) { $daemon = 1; }
undef %opts;
# si option -d mise en arriere plan
if ($daemon) {
use POSIX 'setsid';
chdir '/' or die "Impossible de mettre le repertoire courant sur root: $!";
open STDIN, '/dev/null' or die "Impossible de lire /dev/null: $!";
open STDOUT, '>/dev/null' or die "Impossible d'écrire vers /dev/null: $!";
defined(my $pid = fork) or die "Impossible de mettre en arriere-plan: $!";
exit if $pid;
setsid or die "Impossible de démarrer une nouvelle session: $!";
# creation du fichier contenant le pid
open FILE, ">$curdir/uworld.pid" or die "Impossible de créer le fichier PID";
print FILE "$$";
close FILE;
print STDOUT "test\n";
}
# creation du service
my $tmp = Service->new(); |
Partager