#!/usr/bin/perl
-
-use List::MoreUtils qw(any);
-
use strict;
my $exe_dir;
BEGIN {
use FindBin;
- use lib "$FindBin::Bin/..";
- use SL::System::Process;
- $exe_dir = SL::System::Process::exe_dir;
-
- unshift @INC, "${exe_dir}/modules/override"; # Use our own versions of various modules (e.g. YAML).
- push @INC, "${exe_dir}/modules/fallback"; # Only use our own versions of modules if there's no system version.
- unshift @INC, $exe_dir;
-
- chdir($exe_dir) || die "Cannot change directory to ${exe_dir}\n";
+ unshift(@INC, $FindBin::Bin . '/../modules/override'); # Use our own versions of various modules (e.g. YAML).
+ push (@INC, $FindBin::Bin . '/..'); # '.' will be removed from @INC soon.
+ push (@INC, $FindBin::Bin . '/../modules/fallback'); # Only use our own versions of modules if there's no system version.
}
use CGI qw( -no_xhtml);
use Daemon::Generic;
use Data::Dumper;
use DateTime;
-use Encode qw();
use English qw(-no_match_vars);
use File::Spec;
+use List::MoreUtils qw(any);
use List::Util qw(first);
use POSIX qw(setuid setgid);
use SL::Auth;
use SL::LxOfficeConf;
use SL::Locale;
use SL::Mailer;
+use SL::System::Process;
use SL::System::TaskServer;
use Template;
package main;
- Form::disconnect_standard_dbh;
$::lxdebug = LXDebug->new;
$::locale = Locale->new($::lx_office_conf{system}->{language});
$::form = Form->new;
}
sub cleanup_kivitendo {
- eval { SL::DB::Auth->new->db->dbh->rollback; };
- eval { SL::DB::BackgroundJob->new->db->dbh->rollback; };
+ eval { SL::DB->client->dbh->rollback; };
$::auth->save_session;
$::auth->expire_sessions;
}
sub clean_before_sleeping {
- Form::disconnect_standard_dbh;
SL::DBConnect::Cache->disconnect_all_and_clear;
SL::DB->db_cache->clear;
EVAL_PERL => 0,
ABSOLUTE => 1,
CACHE_SIZE => 0,
+ ENCODING => 'utf8',
});
return debug("Could not create Template instance") unless $template;
subject => $cfg->{email_subject},
content_type => 'text/plain',
charset => 'utf-8',
- message => Encode::decode('utf-8', $body),
+ message => $body,
)->send;
1;
sub gd_run {
while (1) {
+ $SIG{'ALRM'} = 'IGNORE';
+
run_once_for_all_clients();
debug("Sleeping");
my $seconds = 60 - (localtime)[0];
if (!eval {
- local $SIG{'ALRM'} = sub {
+ $SIG{'ALRM'} = sub {
+ $SIG{'ALRM'} = 'IGNORE';
debug("Got woken up by SIGALRM");
die "Alarm!\n"
};
}
}
-sub end_of_request {
- $main::lxdebug->show_backtrace();
- die <<EOF;
-Job called ::end_of_request()!
-
-This usually indicates success but should not be used by background jobs. A
-backtrace has been logged. Please tell the job author to have a look at it.
-EOF
-
-}
-
-chdir $exe_dir;
+$exe_dir = SL::System::Process->exe_dir;
+chdir($exe_dir) || die "Cannot change directory to ${exe_dir}\n";
mkdir SL::System::TaskServer::PID_BASE() if !-d SL::System::TaskServer::PID_BASE();