From 37220994fec0ec4f8913be99f66aa082c78897a4 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 8 Feb 2006 22:53:18 +0000 Subject: don't leave ssh zombies around either --- FS/bin/freeside-selfservice-server | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'FS/bin/freeside-selfservice-server') diff --git a/FS/bin/freeside-selfservice-server b/FS/bin/freeside-selfservice-server index c73349a60..6026fd18f 100644 --- a/FS/bin/freeside-selfservice-server +++ b/FS/bin/freeside-selfservice-server @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; -use vars qw( $Debug %kids $kids $max_kids $ssh_pid $keepalives ); +use vars qw( $Debug %kids $kids $max_kids $ssh_pid %old_ssh_pid $keepalives ); use subs qw( lock_write unlock_write myshutdown usage ); use Fcntl qw(:flock); use POSIX qw(:sys_wait_h); @@ -102,6 +102,7 @@ while (1) { if ( $ssh_pid ) { warn "sending TERM signal to ssh process $ssh_pid\n" if $Debug; kill 'TERM', $ssh_pid; + $old_ssh_pid{$ssh_pid} = 1; $ssh_pid = 0; } last; @@ -180,6 +181,10 @@ sub reap_kids { delete $kids{$kid}; } } + + foreach my $pid ( keys %old_ssh_pid ) { + waitpid($pid, WNOHANG) and delete $old_ssh_pid{$pid}; + } #warn "done reaping\n"; } -- cgit v1.2.1 From e832476aeab5f4da2b342b30ee9eed84bf451e80 Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 5 Nov 2006 16:58:19 +0000 Subject: fix spurious disconnection errors in selfservice server log --- FS/bin/freeside-selfservice-server | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'FS/bin/freeside-selfservice-server') diff --git a/FS/bin/freeside-selfservice-server b/FS/bin/freeside-selfservice-server index 6026fd18f..0ba97f6fb 100644 --- a/FS/bin/freeside-selfservice-server +++ b/FS/bin/freeside-selfservice-server @@ -134,11 +134,11 @@ while (1) { } else { #kid time ##get new db handle - #$FS::UID::dbh->{InactiveDestroy} = 1; - #forksuidsetup($user); + $FS::UID::dbh->{InactiveDestroy} = 1; + forksuidsetup($user); #get db handle - adminsuidsetup($user); + #adminsuidsetup($user); my $type = $packet->{_packet}; warn "calling $type handler\n" if $Debug; -- cgit v1.2.1 From 7422aa77086326ba1e6032150ce5704d1003ea6f Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 14 Dec 2006 09:27:26 +0000 Subject: make the config directory configurable --- FS/bin/freeside-selfservice-server | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'FS/bin/freeside-selfservice-server') diff --git a/FS/bin/freeside-selfservice-server b/FS/bin/freeside-selfservice-server index 0ba97f6fb..fc04ee91e 100644 --- a/FS/bin/freeside-selfservice-server +++ b/FS/bin/freeside-selfservice-server @@ -18,6 +18,8 @@ use FS::Conf; use FS::cust_bill; use FS::cust_pkg; +$FREESIDE_CONF = "%%%FREESIDE_CONF%%%"; + $Debug = 1; # 2 will turn on more logging # 3 will log packet contents, including passwords @@ -50,11 +52,10 @@ $ENV{HOME} = (getpwuid($>))[7]; #for ssh adminsuidsetup $user; #logfile("/usr/local/etc/freeside/selfservice.". $FS::UID::datasrc); #MACHINE -logfile("/usr/local/etc/freeside/selfservice.$machine.log"); +logfile("$FREESIDE_SERVER/selfservice.$machine.log"); daemonize2(); - my $conf = new FS::Conf; my $clientd = "/usr/local/sbin/freeside-selfservice-clientd"; #better name? -- cgit v1.2.1 From 1163d4d5044ca487ae9cf2176346e297979aa1e1 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 15 Dec 2006 00:28:46 +0000 Subject: tiny bit of cleanup from the conf merge --- FS/bin/freeside-selfservice-server | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'FS/bin/freeside-selfservice-server') diff --git a/FS/bin/freeside-selfservice-server b/FS/bin/freeside-selfservice-server index fc04ee91e..187bc1469 100644 --- a/FS/bin/freeside-selfservice-server +++ b/FS/bin/freeside-selfservice-server @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use vars qw( $FREESIDE_LOG $FREESIDE_LOCK ); use vars qw( $Debug %kids $kids $max_kids $ssh_pid %old_ssh_pid $keepalives ); use subs qw( lock_write unlock_write myshutdown usage ); use Fcntl qw(:flock); @@ -18,7 +19,8 @@ use FS::Conf; use FS::cust_bill; use FS::cust_pkg; -$FREESIDE_CONF = "%%%FREESIDE_CONF%%%"; +$FREESIDE_LOG = "%%%FREESIDE_LOG%%%"; +$FREESIDE_LOCK = "%%%FREESIDE_LOCK%%%"; $Debug = 1; # 2 will turn on more logging # 3 will log packet contents, including passwords @@ -31,8 +33,7 @@ my $user = shift or die &usage; my $machine = shift or die &usage; my $tag = scalar(@ARGV) ? shift : ''; -my $lock_file = "/usr/local/etc/freeside/selfservice.$machine.writelock"; - +my $lock_file = "$FREESIDE_LOCK/selfservice.$machine.writelock"; # to keep pid files unique w/multi machines (and installs!) # $FS::UID::datasrc not posible @@ -52,7 +53,7 @@ $ENV{HOME} = (getpwuid($>))[7]; #for ssh adminsuidsetup $user; #logfile("/usr/local/etc/freeside/selfservice.". $FS::UID::datasrc); #MACHINE -logfile("$FREESIDE_SERVER/selfservice.$machine.log"); +logfile("$FREESIDE_LOG/selfservice.$machine.log"); daemonize2(); -- cgit v1.2.1