projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f49abe4
)
also don't leak processes, like fs_passwdd
author
ivan
<ivan>
Wed, 17 Apr 2002 07:32:51 +0000
(07:32 +0000)
committer
ivan
<ivan>
Wed, 17 Apr 2002 07:32:51 +0000
(07:32 +0000)
fs_signup/FS-SignupClient/fs_signupd
patch
|
blob
|
history
diff --git
a/fs_signup/FS-SignupClient/fs_signupd
b/fs_signup/FS-SignupClient/fs_signupd
index
e764f32
..
85bd68a
100755
(executable)
--- a/
fs_signup/FS-SignupClient/fs_signupd
+++ b/
fs_signup/FS-SignupClient/fs_signupd
@@
-13,7
+13,8
@@
use vars qw( $Debug );
$Debug = 1;
$Debug = 1;
-my($fs_signupd_socket)="/usr/local/freeside/fs_signupd_socket";
+my $fs_signupd_socket = "/usr/local/freeside/fs_signupd_socket";
+my $pid_file = "$fs_signupd_socket.pid";
$ENV{'PATH'} ='/usr/local/bin:/usr/bin:/usr/ucb:/bin';
$ENV{'SHELL'} = '/bin/sh';
$ENV{'PATH'} ='/usr/local/bin:/usr/bin:/usr/ucb:/bin';
$ENV{'SHELL'} = '/bin/sh';
@@
-35,6
+36,18
@@
unlink($fs_signupd_socket);
bind(Server, $uaddr) or die "bind: $!";
listen(Server,SOMAXCONN) or die "listen: $!";
bind(Server, $uaddr) or die "bind: $!";
listen(Server,SOMAXCONN) or die "listen: $!";
+if ( -e $pid_file ) {
+ open(PIDFILE,"<$pid_file");
+ #chomp( my $old_pid = <PIDFILE> );
+ my $old_pid = <PIDFILE>;
+ close PIDFILE;
+ $old_pid =~ /^(\d+)$/;
+ kill 'TERM', $1;
+}
+open(PIDFILE,">$pid_file");
+print PIDFILE "$$\n";
+close PIDFILE;
+
warn "[fs_signupd] Entering main loop...\n" if $Debug;
my $paddr;
for ( ; $paddr = accept(Client,Server); close Client) {
warn "[fs_signupd] Entering main loop...\n" if $Debug;
my $paddr;
for ( ; $paddr = accept(Client,Server); close Client) {