Task-Server: PID-File nur aus relativem Konfigurationsdateinamen ableiten
[kivitendo-erp.git] / scripts / task_server.pl
index 513fa98..eb407cb 100755 (executable)
@@ -21,6 +21,7 @@ use Daemon::Generic;
 use Data::Dumper;
 use DateTime;
 use English qw(-no_match_vars);
+use File::Spec;
 use List::Util qw(first);
 use POSIX qw(setuid setgid);
 use SL::Auth;
@@ -32,6 +33,7 @@ use SL::InstanceConfiguration;
 use SL::LXDebug;
 use SL::LxOfficeConf;
 use SL::Locale;
+use SL::System::TaskServer;
 
 our %lx_office_conf;
 
@@ -141,15 +143,19 @@ sub gd_run {
   }
 }
 
-my $cwd     = getcwd();
-my $pidbase = "${cwd}/users/pid";
+chdir $exe_dir;
 
-mkdir($pidbase) if !-d $pidbase;
+mkdir SL::System::TaskServer::PID_BASE() if !-d SL::System::TaskServer::PID_BASE();
+
+my $file = first { -f } ("${exe_dir}/config/kivitendo.conf", "${exe_dir}/config/lx_office.conf", "${exe_dir}/config/kivitendo.conf.default");
+
+die "No configuration file found." unless $file;
+
+$file = File::Spec->abs2rel(Cwd::abs_path($file), Cwd::abs_path($exe_dir));
 
-my $file = first { -f } ("${cwd}/config/kivitendo.conf", "${cwd}/config/lx_office.conf", "${cwd}/config/kivitendo.conf.default");
 newdaemon(configfile => $file,
           progname   => 'kivitendo-task-server',
-          pidbase    => "${pidbase}/",
+          pidbase    => SL::System::TaskServer::PID_BASE() . '/',
           );
 
 1;