# no autoloading just yet
use FS::cust_main;
use FS::svc_acct;
-use Net::SSH;
+use Net::SSH 0.05;
+use FS::part_export;
my $pid_file = '/var/run/freeside-queued.pid';
my $user = shift or die &usage;
-&daemonize;
+&daemonize1;
sub REAPER { my $pid = wait; $SIG{CHLD} = \&REAPER; }
$SIG{CHLD} = \&REAPER;
$log_file = "/usr/local/etc/freeside/queuelog.". $FS::UID::datasrc;
+&daemonize2;
+
$SIG{__DIE__} = \&_die;
$SIG{__WARN__} = \&_logmsg;
-warn "freesied-queued starting\n";
+warn "freeside-queued starting\n";
while (1) {
warn "WARNING: can't fork: $!\n";
my %hash = $job->hash;
$hash{'status'} = 'failed';
+ $hash{'statustext'} = "[freeside-queued] can't fork: $!";
my $ljob = new FS::queue ( \%hash );
my $error = $ljob->replace($job);
die $error if $error;
my $eval = "&". $ljob->job. '(@args);';
warn "running $eval";
- eval $eval;
+ eval $eval; #throw away return value? suppose so
if ( $@ ) {
warn "job $eval failed";
my %hash = $ljob->hash;
$hash{'status'} = 'failed';
+ $hash{'statustext'} = $@;
my $fjob = new FS::queue( \%hash );
my $error = $fjob->replace($ljob);
die $error if $error;
close $log;
}
-sub daemonize {
+sub daemonize1 {
chdir "/" or die "Can't chdir to /: $!";
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
print $pidfh "$pid\n";
exit;
}
+ #open STDOUT, '>/dev/null'
+ # or die "Can't write to /dev/null: $!";
+ #setsid or die "Can't start a new session: $!";
+ #open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
+
+}
+
+sub daemonize2 {
open STDOUT, '>/dev/null'
or die "Can't write to /dev/null: $!";
setsid or die "Can't start a new session: $!";
open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
-
}
=head1 NAME