[freeside-commits] freeside/FS/FS Conf.pm, 1.324.2.36, 1.324.2.37 Daemon.pm, 1.3.4.2, 1.3.4.3
Ivan,,,
ivan at wavetail.420.am
Wed Jun 16 14:53:24 PDT 2010
Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv31137/FS/FS
Modified Files:
Tag: FREESIDE_1_9_BRANCH
Conf.pm Daemon.pm
Log Message:
a local XML-RPC server for ncic: daemonize and respond to TERM, RT#7780
Index: Conf.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/Conf.pm,v
retrieving revision 1.324.2.36
retrieving revision 1.324.2.37
diff -u -w -d -r1.324.2.36 -r1.324.2.37
--- Conf.pm 7 Jun 2010 02:39:56 -0000 1.324.2.36
+++ Conf.pm 16 Jun 2010 21:53:21 -0000 1.324.2.37
@@ -1631,6 +1631,7 @@
'description' => 'Run billing for signup server signups immediately, and do not provision accounts which subsequently have a balance.',
'type' => 'checkbox',
},
+
{
'key' => 'signup_server-classnum2',
'section' => 'self-service',
@@ -1646,6 +1647,13 @@
},
{
+ 'key' => 'selfservice-xmlrpc',
+ 'section' => 'self-service',
+ 'description' => 'Run a standalone self-service XML-RPC server on the backend (on port 8080).',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'backend-realtime',
'section' => 'billing',
'description' => 'Run billing for backend signups immediately.',
Index: Daemon.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/Daemon.pm,v
retrieving revision 1.3.4.2
retrieving revision 1.3.4.3
diff -u -w -d -r1.3.4.2 -r1.3.4.3
--- Daemon.pm 16 Jun 2010 19:41:24 -0000 1.3.4.2
+++ Daemon.pm 16 Jun 2010 21:53:22 -0000 1.3.4.3
@@ -6,6 +6,8 @@
use Fcntl qw(:flock);
use POSIX qw(setsid);
use IO::File;
+use File::Basename;
+use File::Slurp qw(slurp);
use Date::Format;
#this is a simple refactoring of the stuff from freeside-queued, just to
@@ -20,11 +22,18 @@
$pid_dir = '/var/run';
$NOSIG = 0;
+$PID_NEWSTYLE = 0;
sub daemonize1 {
$me = shift;
- $pid_file = "$pid_dir/$me";
+ $pid_file = $pid_dir;
+ if ( $PID_NEWSTYLE ) {
+ $pid_file .= '/freeside';
+ mkdir $pid_file unless -d $pid_file;
+ chown $FS::UID::freeside_uid, -1, $pid_file;
+ }
+ $pid_file .= "/$me";
$pid_file .= '.'.shift if scalar(@_);
$pid_file .= '.pid';
@@ -35,6 +44,7 @@
print "$me started with pid $pid\n"; #logging to $log_file\n";
exit unless $pid_file;
my $pidfh = new IO::File ">$pid_file" or exit;
+ chown $FS::UID::freeside_uid, -1, $pid_file;
print $pidfh "$pid\n";
exit;
}
@@ -82,14 +92,18 @@
sub logfile { $logfile = shift; } #_logmsg('test'); }
sub myexit {
- unlink $pid_file if -e $pid_file;
+ chomp( my $pid = slurp($pid_file) );
+ unlink $pid_file if -e $pid_file && $$ == $pid;
exit;
}
sub _die {
die @_ if $^S; # $^S = 1 during an eval(), don't break exception handling
my $msg = shift;
- unlink $pid_file if -e $pid_file;
+
+ chomp( my $pid = slurp($pid_file) );
+ unlink $pid_file if -e $pid_file && $$ == $pid;
+
_logmsg($msg);
}
More information about the freeside-commits
mailing list