[solved]systemd startscript

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Colttt
Beiträge: 2831
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

[solved]systemd startscript

Beitrag von Colttt » 06.08.2018 15:07:31

Hallo,

ich habe folgendes Startscript:

Code: Alles auswählen

[Unit]
Description=Mathematica License Manager v11.3
After=network.target

[Service]
User=root
Group=root
Type=forking
#Type=oneshot
#Type=simple
ExecStart=/opt/aei/apps/licenses/Mathematica/v11.3/mathlm -timeout 24 -loglevel 4 -logfile /var/log/licenses/mathematica_11.3.log
#Restart=on-failure 
#RestartSec=5s

[Install]
WantedBy=multi-user.target
leider will er den Dienst aus mir nicht logischen Gründen starten, dort kommen dann immer folgende Fehlerneldungen: NoPaste-Eintrag40413. Ich nutze hier Debian stable.
Zuletzt geändert von Colttt am 06.08.2018 16:56:58, insgesamt 1-mal geändert.
Debian-Nutzer :D

ZABBIX Certified Specialist

MSfree
Beiträge: 3624
Registriert: 25.09.2007 19:59:30

Re: systemd startscript

Beitrag von MSfree » 06.08.2018 15:22:22

Colttt hat geschrieben: ↑ zum Beitrag ↑
06.08.2018 15:07:31
leider will er den Dienst aus mir nicht logischen Gründen starten
Doch, der startet den Dienst, dieser bricht aber mit SIGCLD praktisch sofort wieder ab.
dort kommen dann immer folgende Fehlerneldungen:
Das sind Meldungen, aber keine Fehlermeldungen :wink:

Da du den Dienst ja in seine eigene Lod-Datei protokollieren läßt, warum hast du da noch nicht reingeschaut?

Soweit ich das aus deiner Startunit ersehen kann, schreibt der Dienst in die Datei /var/log/licenses/mathematica_11.3.log

Zum Debuggen könnte es auch helfen, wenn du den Dienst einfach von der Kommandozeile startest und schaust, was für Meldungen der rauswirft. Ich bin sicher, daß es ein Konfigurationsproblem des Dienstes ist und nicht mit systemd zu tun hat, denn systemd macht, wie dein Logauszug zeigt, alles richtig.

Colttt
Beiträge: 2831
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: systemd startscript

Beitrag von Colttt » 06.08.2018 15:38:39

das interessante ist ja auch, das wenn ich den Dienst enable und dann versuche zu starte, geht es jedoch ist das nur einmal so. wenn ich den Dienst jetzt wieder starte geht das wieder nicht. Das sieht das so aus: NoPaste-Eintrag40414

in der Log-Datei steht leider nichts drin:

Code: Alles auswählen

HORSTNAME.de - root [06/Aug/2018:13:36:52] "MathLM 11.3 executable launched" "/opt/aei/apps/licenses/Mathematica/v11.3/mathlm" -
HORSTNAME.de - root [06/Aug/2018:13:36:52] "Default (Common Logfile Format) log format specified" "%h3 - %u2 [%d/%m2/%y2:%t2] %q%e2%q %q%r2%q -" -
HORSTNAME.de - root [06/Aug/2018:13:36:52] "Logfile specified" "/var/log/licenses/mathematica_11.3.log" -
HORSTNAME.de - root [06/Aug/2018:13:36:52] "Verbosity level specified" "1" -
HORSTNAME.de - root [06/Aug/2018:13:36:52] "Logging verbosity level specified" "4" -

Online help is available at
http://reference.wolfram.com/network
ich bin daher der Meinung das systemd das irgendwie abwürgt, denn wenn ich den Befehl manuell starte klappts ohne Probleme.

Wenn ich es normal starte steht noch folgendes in der Logfile (was uns mMn aber auch nicht weiter bringt):

Code: Alles auswählen

HORSTNAME.de - root [06/Aug/2018:13:43:39] "MathLM 11.3 executable launched" "/opt/aei/apps/licenses/Mathematica/v11.3/mathlm" -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Default (Common Logfile Format) log format specified" "%h3 - %u2 [%d/%m2/%y2:%t2] %q%e2%q %q%r2%q -" -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Logfile specified" "/var/log/licenses/mathematica_11.3.log" -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Verbosity level specified" "1" -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Logging verbosity level specified" "4" -

Online help is available at
http://reference.wolfram.com/network

HORSTNAME.de - root [06/Aug/2018:13:43:39] "Binding IPv6 socket" "Success.  Socket 16287 taken." -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Binding IPv4 socket" "Success.  Socket 16286 taken." -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Creating license table" "Success" -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Binding to socket" "Success.  Socket 16286 taken." -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "Hostname" "HORSTNAME.de" -
HORSTNAME.de - root [06/Aug/2018:13:43:39] "PID" "1203" -
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
smutbert
Beiträge: 6402
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: systemd startscript

Beitrag von smutbert » 06.08.2018 15:45:56

Benötigt das Ding Zugriff auf einen Lizenzserver oder so etwas um korrekt zu starten. Es muss nichts mit dem Scheitern des Starts zu tun haben, aber dann könnte es sinnvoll sein statt oder zusätzlich zu dem After=network.target so etwas wie

Code: Alles auswählen

Requires=network-online.target
hinzuzufügen, wobei es je nachdem wie das Netzwerk konfiguriert wird, uU notwendig ist auch noch dafür zu sorgen, dass network-online.target erst nach/mit dem Zustandekommen der Netzwerkverbindung aktiviert wird.

MSfree
Beiträge: 3624
Registriert: 25.09.2007 19:59:30

Re: systemd startscript

Beitrag von MSfree » 06.08.2018 15:50:35

Colttt hat geschrieben: ↑ zum Beitrag ↑
06.08.2018 15:38:39
ich bin daher der Meinung das systemd das irgendwie abwürgt, denn wenn ich den Befehl manuell starte klappts ohne Probleme
Nein, in deinem Log steht ganz klar:

Code: Alles auswählen

Got final SIGCHLD for state start
SIGCHLD wird immer durch den Kindprozeß generiert, wenn sich das Kind beendet.
wenn ich den Dienst jetzt wieder starte geht das wieder nicht
Ist ja auch irgendwie logisch, denn systemd denkt, daß der Dienst noch läuft.
Du mußt dann den Dienst schon mit

Code: Alles auswählen

systemctl stop Dienstname
systemctl start Dienstname
neu starten:

OK,

Code: Alles auswählen

systemctl restart Dienstname
geht auch, das faßt stop und start zusammen.

Da dein License-Dienst kein standard Debianprogramm ist, kenne ich den Syntax dieses Programmes nicht und will dir auch nicht das Vergnügen nehmen, es selbst im Internet zu recherchieren. Da mußt du wohl mal in der Anleitung des Herstellers nachschauen. Jedenfalls scheint der nicht richtig konfiguriert zu sein und beendet sich somit sofort wieder.

Was kommt denn raus, wenn du

Code: Alles auswählen

/opt/aei/apps/licenses/Mathematica/v11.3/mathlm -timeout 24 -loglevel 4
einfach so in die Kommandozeile (als root) eingibst?
Wahlweise auch mit mit -loglevel 99 versuchen.

Colttt
Beiträge: 2831
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: systemd startscript

Beitrag von Colttt » 06.08.2018 15:53:00

[...]einfach so in die Kommandozeile (als root) eingibst?
dann gehts ohne probleme. Loglevel geht nur bis 4 ;)


Edit:
hab das jetzt mal mit strace gemacht einmal via systemd und einmal direkt in der konsole und man staune, es ist der selbe Output:

Code: Alles auswählen

/usr/bin/strace -e trace=process -o /tmp/my12.log /opt/aei/apps/licenses/Mathematica/v11.3/mathlm -timeout 24 -loglevel 4 -logfile /var/log/licenses/mathematica_11.3.log
Output:

Code: Alles auswählen

execve("/opt/aei/apps/licenses/Mathematica/v11.3/mathlm", ["/opt/aei/apps/licenses/Mathemati"..., "-timeout", "24", "-loglevel", "4", "-logfile", "/var/log/licenses/mathematica_11"...], [/* 18 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x7f62c8bfc700) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f62c8bfc9d0) = 1434
exit_group(0)                           = ?
+++ exited with 0 +++
auch ohne -e kommts auf das selbe hinaus, clone. Kommt systemd damit nicht klar?

Edit2:
mal mit strace -f gemacht,
von der kommandozeile aus:

Code: Alles auswählen

1536  execve("/opt/aei/apps/licenses/Mathematica/v11.3/mathlm", ["/opt/aei/apps/licenses/Mathemati"..., "-timeout", "24", "-loglevel", "4", "-logfile", "/var/log/licenses/mathematica_11"...], [/* 18 vars */]) = 0
1536  arch_prctl(ARCH_SET_FS, 0x7f49f2f84700) = 0
1536  clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f49f2f849d0) = 1537
1536  exit_group(0)                     = ?
1536  +++ exited with 0 +++
1537  clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f49f2f849d0) = 1538
1537  exit_group(0)                     = ?
1537  +++ exited with 0 +++
1538  exit_group(-1)                    = ?
1538  +++ exited with 255 +++
als service-file:

Code: Alles auswählen

1612  execve("/opt/aei/apps/licenses/Mathematica/v11.3/mathlm", ["/opt/aei/apps/licenses/Mathemati"..., "-timeout", "24", "-loglevel", "4", "-logfile", "/var/log/licenses/mathematica_11"...], [/* 9 vars */]) = 0
1612  arch_prctl(ARCH_SET_FS, 0x7f440aee1700) = 0
1612  clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f440aee19d0) = 1613
1612  exit_group(0)                     = ?
1612  +++ exited with 0 +++
1613  clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f440aee19d0) = 1614
1613  exit_group(0)                     = ?
1613  +++ exited with 0 +++
1614  --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=1, si_uid=0} ---
1614  +++ killed by SIGTERM +++
cloned er sich evtl zu oft?
Debian-Nutzer :D

ZABBIX Certified Specialist

Colttt
Beiträge: 2831
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: [solved]systemd startscript

Beitrag von Colttt » 06.08.2018 16:57:48

so habs dann gelöst.
hab noch den startparameter -foreground und als Type=simple genommen, dann funktioniert es ohne probleme
Debian-Nutzer :D

ZABBIX Certified Specialist

Colttt
Beiträge: 2831
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: [solved]systemd startscript

Beitrag von Colttt » 07.08.2018 10:37:19

was ich mich aber jetzt noch frage ist.. ist es in irgendeiner art nen Bug von systemd?
Debian-Nutzer :D

ZABBIX Certified Specialist

MSfree
Beiträge: 3624
Registriert: 25.09.2007 19:59:30

Re: [solved]systemd startscript

Beitrag von MSfree » 07.08.2018 10:54:24

Colttt hat geschrieben: ↑ zum Beitrag ↑
07.08.2018 10:37:19
was ich mich aber jetzt noch frage ist.. ist es in irgendeiner art nen Bug von systemd?
Nein, mit Sicherheit nicht.

Dein License-Daemon verhält sich offenbar nicht so, wie sich ein standard Daemon verhalten sollte. In der Vergangenheit gab es einige (proprietäre) Dienstprogramme, die sich nicht an die üblichen Gepflogenheiten hielten und mit abenteuerlichen Mitteln wie Debiantmux oder Debianscreen zur Mitarbeit bewegt werden mußten.

Für solche "Daemons" bietet systemd jetzt eigene Mechanismen an, um auf Helfer zu verzichten. Mit anderen Worten, systemd bietet hier sogar Erweiterungen an, die mit dem traditionellen SysVInit nur mit Klimmzügen zu erreichen waren.

Antworten