[Newb Help]Start Script via Systemd - Error

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Cr0wd
Beiträge: 5
Registriert: 27.04.2016 22:19:06

[Newb Help]Start Script via Systemd - Error

Beitrag von Cr0wd » 27.04.2016 22:25:11

Hey liebes Debianforum,

Ich wollte über ein Systemd Service ein Shellscript ausführen.
Grunlegend wollte ich über den User mtadef den Service mtadef ausführen, welcher
wiederum ein Shell Script ausführt. Dieses Shellscript startet einen Gameserver in screen, leider funktioniert
das nicht, ich bekomme folgenden Fehler: "Must be connected to terminal"

Service Script (mtadef):

Code: Alles auswählen

[Unit]
Description="MTA: Primary Server"

[Service]
Type=Forking
User=mtadef
ExecStart=/home/mtadef/mtastart.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
Und hier ist mein Shellscript (mtastart.sh):

Code: Alles auswählen

#!/bin/sh
if [ $# -ne 1 ]
	then
		screen -S MTA_def /home/mtadef/mta-server64 -screen 0 800x600x16 -ac
		exit 1
fi

if [ $1 != "start" -a $1 != "stop" ]
	then 
		echo "Verwende: $0 [start/stop]"
		exit 0

	elif [ $1 = "start" ]
	then 
		screen -S MTA_def /home/mtadef/mta-server64 -screen 0 800x600x16 -ac
		exit 1
	elif [ $1 = "stop" ]
	then 
		crontab -r 
		screen -X -S "MTA_def" quit
		exit 1
fi
Die Nachricht kommt, wenn ich eintippe: systemctl start mtadef, ich will es testen bevor
ich es in den Autostart packe.

Ich hoffe ihr könnt mir helfen.

Grüße!

TomL

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von TomL » 27.04.2016 23:25:16

Aus Neugier würde ich mal die 3 screen-Statements im Script kommentieren.... vielleicht hängt diese Terminal-Meldung damit zusammen. Und wenn ja, würde ich es aus anderer Richtung angehen:
http://www.linuxveda.com/2014/04/28/aut ... n-systemd/

Wenn der Dienst läuft, ist "autostart" der falsche Weg. Richtig wäre "systemctl enable mtadef.service" um ihn bei Systemstart neben den anderen Diensten zu starten.

Cr0wd
Beiträge: 5
Registriert: 27.04.2016 22:19:06

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von Cr0wd » 27.04.2016 23:36:23

Screen hängt ganz sicher mit der Terminal Meldung zusammen,
das ist ja fast der einzige Befehl wirklich im Script.
Und Autostart ist erst mal nicht wichtig, da ich über start per Systemctl nur
testen will ob das überhaupt vorerst funktioniert.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von NAB » 27.04.2016 23:44:32

Ich vermute, du musst screen mit der Option "-d" starten. Siehe "man screen".
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Cr0wd
Beiträge: 5
Registriert: 27.04.2016 22:19:06

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von Cr0wd » 27.04.2016 23:47:53

NAB hat geschrieben:Ich vermute, du musst screen mit der Option "-d" starten. Siehe "man screen".

Code: Alles auswählen

screen -S -d MTA_def /home/mtadef/mta-server64 -screen 0 800x600x16 -ac
So ? Denn so gehts nicht, sofern ich den parameter nicht falsch gesetzt habe.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von NAB » 27.04.2016 23:51:45

Probier mal so:

Code: Alles auswählen

man screen MTA_def /home/mtadef/mta-server64 -screen 0 800x600x16 -ac
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Cr0wd
Beiträge: 5
Registriert: 27.04.2016 22:19:06

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von Cr0wd » 27.04.2016 23:53:53

NAB hat geschrieben:Probier mal so:

Code: Alles auswählen

man screen MTA_def /home/mtadef/mta-server64 -screen 0 800x600x16 -ac
Dann bekomme ich das hier:

Code: Alles auswählen

 Loaded: loaded (/etc/systemd/system/mtadef.service; enabled)
   Active: active (exited) (Result: exit-code) since Mi 2016-04-27 23:53:21 CEST; 16s ago
  Process: 2128 ExecStart=/home/mtadef/mtastart.sh (code=exited, status=1/FAILURE)
 Main PID: 2128 (code=exited, status=1/FAILURE)

Apr 27 23:53:22 rs000951 mtastart.sh[2128]: sym@@GLIBC_2.2.5_ZN7SStringaSEOS__ZNSs4_Rep20_S_empty_rep_stor‐
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: ageE@@GLIBCXX_3.4_ZN7SStringD2Ev_edata_ZNK7SString8Contain‐
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: sERKS___gxx_personality_v0@@CXXABI_1.3_ZN15CDynamicLi‐
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: braryC1Ev_Unwind_Re‐
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: sume@@GCC_3.0_ZNSs4swapERSs@@GLIBCXX_3.4_ZNSs6appen‐
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: dERKSs@@GLIBCXX_3.4main_init
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: Kein Handbucheintrag für -screen vorhanden
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: Kein Handbucheintrag für 0 vorhanden
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: Kein Handbucheintrag für 800x600x16 vorhanden
Apr 27 23:53:22 rs000951 mtastart.sh[2128]: Kein Handbucheintrag für -ac vorhanden


NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von NAB » 27.04.2016 23:57:13

Und wenn du es direkt in der Konsole ausprobierst?
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Cr0wd
Beiträge: 5
Registriert: 27.04.2016 22:19:06

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von Cr0wd » 28.04.2016 00:00:28

NAB hat geschrieben:Und wenn du es direkt in der Konsole ausprobierst?

Code: Alles auswählen

root@rs000951:~# man screen MTA_def /home/mtadef/mta-server64 -screen 0 800x600x16 -ac
man: MTA_def-/home/mtadef/mta-server64: Datei oder Verzeichnis nicht gefunden
man: MTA_def_/home/mtadef/mta-server64: Datei oder Verzeichnis nicht gefunden
Kein Handbucheintrag für MTA_def vorhanden
man: /home/mtadef/mta-server64--screen: Datei oder Verzeichnis nicht gefunden
man: /home/mtadef/mta-server64_-screen: Datei oder Verzeichnis nicht gefunden
Wenn ich aber mein Code direkt in die Konsole eintrage geht es, dann
startet der Server ganz normal.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: [Newb Help]Start Script via Systemd - Error

Beitrag von NAB » 28.04.2016 00:09:19

Erstaunlich! Bei mir zeigt er dann diesen Text an:
https://manpages.debian.org/cgi-bin/man ... &locale=en
Ich vermute, du brauchst "-d -m" oder "-D -m".
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Antworten