2.7. Der Task-Server

Der Task-Server ist ein Prozess, der im Hintergrund läuft, in regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess wird u.a. für die Erzeugung der wiederkehrenden Rechnungen und weitere essenzielle Aufgaben benutzt.

2.7.1. Verfügbare und notwendige Konfigurationsoptionen

Die Konfiguration erfolgt über den Abschnitt [task_server] in der Datei config/kivitendo.conf. Die dort verfügbaren Optionen sind:

client

Name oder Datenbank-ID eines vorhandenen kivitendo-Mandanten, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Mandant muss in der Administration angelegt werden. Diese Option muss angegeben werden.

Diese Option kam mit Release v3.x.0 hinzu und muss daher in Konfigurationen, die von älteren Versionen aktualisiert wurden, ergänzt werden.

login

gültiger kivitendo-Benutzername, der z.B. als Verkäufer beim Erzeugen wiederkehrender Rechnungen benötigt wird. Der Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden.

run_as

Wird der Server vom Systembenutzer root gestartet, so wechselt er auf den mit run_as angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe see Manuelle Installation des Programmpaketes). Daher ist es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft.

debug

Schaltet Debug-Informationen an und aus.

2.7.2. Automatisches Starten des Task-Servers beim Booten

Der Task-Server verhält sich von seinen Optionen her wie ein reguläres SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten automatisch in das kivitendo-Installationsverzeichnis.

Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess einzubinden. Da das bei neueren Linux-Distributionen aber nicht zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die anstelle eines symbolischen Links verwendet werden können.

2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)

Kopieren Sie die Datei scripts/boot/system-v/kivitendo-server nach /etc/init.d/kivitendo-server. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile DAEMON=....). Binden Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:

  • Debian-basierende Systeme:

    update-rc.d kivitendo-task-server defaults
    # Nur bei Debian Squeeze und neuer:
    insserv kivitendo-task-server
  • Ältere OpenSUSE und ältere Fedora Core:

    chkconfig --add kivitendo-task-server

Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:

/etc/init.d/kivitendo-task-server start

2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)

Kopieren Sie die Datei scripts/boot/upstart/kivitendo-task-server.conf nach /etc/init/kivitendo-task-server.conf. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile exec ....).

Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:

service kivitendo-task-server start

2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)

Verlinken Sie die Datei scripts/boot/systemd/kivitendo-task-server.service nach /etc/systemd/system/. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile ExecStart=.... und ExecStop=...). Binden Sie das Script in den Boot-Prozess ein.

Alle hierzu benötigten Befehle sehen so aus:

cd /var/www/kivitendo-erp/scripts/boot/systemd
ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/

Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:

systemctl start kivitendo-task-server.service

2.7.3. Wie der Task-Server gestartet und beendet wird

Der Task-Server wird wie folgt kontrolliert:

./scripts/task_server.pl Befehl

Befehl ist dabei eine der folgenden Optionen:

  • start startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des users-Verzeichnisses abgelegt.

  • stop beendet einen laufenden Task-Server.

  • restart beendet und startet ihn neu.

  • status berichtet, ob der Task-Server läuft.

Der Task-Server wechselt beim Starten automatisch in das kivitendo-Installationsverzeichnis.

Dieselben Optionen können auch für die SystemV-basierenden Runlevel-Scripte benutzt werden (siehe oben).

2.7.4. Task-Server mit mehreren Mandanten

Beim Task-Server werden der zu verwendende Mandant und Login-Name des Benutzers, unter dem der Task-Server laufen soll, in die Konfigurationsdatei geschrieben. Hat man mehrere Mandanten, muss man auch mehrere Konfigurationsdateien anlegen.

Die Konfigurationsdatei ist eine Kopie der Datei kivitendo.conf, wo in der Kategorie [task_server] die gewünschten Werte für client und login eingetragen werden.

Der alternative Task-Server wird dann mit folgendem Befehl gestartet:

./scripts/task_server.pl -c config/DATEINAME.conf