Linux-Dienst: Service Script
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Linux-Dienst: Service Script
Hallo zusammen,
ich habe einen Daemon für Linux geschrieben, welcher an sich prima funktioniert. Für Alpine Linux benötige ich ein systemctl-Start-Script. Das kann ich natürlich selber schreiben, aber vielleicht hat hier jemand eine Vorlage.
Das im FreePascal Wiki verlinkte Beispiel ist leider nicht mehr erreichbar.
Vielen Dank.
ich habe einen Daemon für Linux geschrieben, welcher an sich prima funktioniert. Für Alpine Linux benötige ich ein systemctl-Start-Script. Das kann ich natürlich selber schreiben, aber vielleicht hat hier jemand eine Vorlage.
Das im FreePascal Wiki verlinkte Beispiel ist leider nicht mehr erreichbar.
Vielen Dank.
Tipp für PostgreSQL: www.pg-forum.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Linux-Dienst: Service Script
Die Frage ist, ob das so noch funktioniert, weil Debian da auch noch eine Menge seit 2013 geändert hat und auf Systemd umgestiegen wurde.
Info zu Systemd auch hier zum Einstieg: https://www.linux.com/training-tutorial ... -stopping/ (Englisch) bzw. in der Wiki steht sowieso was zu systemd weiter unten.
Altes Script:
Quelle: https://web.archive.org/web/20130209102 ... service.sh
Edit: Habe den Link in der Wiki auf das Webarchive umgelegt, nachdem der alte ja tot ist
Info zu Systemd auch hier zum Einstieg: https://www.linux.com/training-tutorial ... -stopping/ (Englisch) bzw. in der Wiki steht sowieso was zu systemd weiter unten.
Altes Script:
Quelle: https://web.archive.org/web/20130209102 ... service.sh
Code: Alles auswählen
#!/bin/bash
# Lazarus service application shell script
SVC_START_OPTIONS="-r"
SVC_STOP_OPTIONS="s"
# Edit SVC_ALIAS to the long description of your service application
SVC_ALIAS="Description of your program"
# Edit SVC_FILENAME to the actual name of your compiled service application
SVC_FILENAME="YourProgram"
# Edit SVC_DIR to where you place your compiled service application
SVC_DIR="/bin/YourFolder/"
# Edit SVC_SERVICE_SCRIPT to the name of this file without the extension
SVC_SERVICE_SCRIPT="YourService"
# this will become your service name. Ie.) service YourService start
SVC_FILE=$SVC_DIR$SVC_FILENAME
start() {
if [ -f $SVC_FILE ]; then
#reset
echo -n "Starting "$SVC_ALIAS": "
RETVALS=$(start-stop-daemon -S -b -x $SVC_FILE -- $SVC_START_OPTIONS)
Count=${#RETVALS[@]}
RETVAL="[FAIL]"
if [ $Count -eq 0 ]; then
RETVAL="[OK]"
elif [ $Count -eq 1 ]; then
if [ ${#RETVALS[0]} -eq 0 ]; then
RETVAL="[OK]"
else
iStart=${#SVC_FILE}
iLength=${#RETVALS[0]}
Response=${RETVALS[0]:(iStart+1):7}
RETVAL=$Response
if [ "$Response" == "already" ]; then
RETVAL="[OK]"
fi
fi
fi
echo $RETVAL
return 0
else
echo $SVC_ALIAS" not installed" $SVC_DIR
exit 2;
fi
}
stop() {
echo -n "Shutting down "$SVC_ALIAS":"
RETVALS=$(start-stop-daemon -K -x $SVC_FILE -- $SVC_STOP_OPTIONS)
#additional PROCKILLS=$(killall -w -q -e $SVC_PROCESS_NAME $SVC_FILENAME)
Count=${#RETVALS[@]}
Index=0
RETVAL="[FAIL]"
if [ $Count -eq 1 ]; then
if [ ${#RETVALS[0]} -eq 0 ]; then
RETVAL="[OK]"
else
Response=${RETVALS[0]:0:2}
RETVAL=$Response
if [ "$Response" == "No" ]; then
RETVAL="[OK]"
fi
fi
else
RETVAL="[OK]"
fi
echo $RETVAL
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $SVC_SERVICE_SCRIPT
;;
restart)
stop
start
;;
*)
echo $SVC_ALIAS" [Invalid Startup Parameters]"
echo "Usage: {start|stop|status|restart}"
exit 1
;;
esac
exit $?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Linux-Dienst: Service Script
Danke. Muss ich eh mal anschauen weil das ja sehr Debian-spezifisch ist und ich hier ein AlpineLinux habe... Ansonsten doch selber schreiben...
Tipp für PostgreSQL: www.pg-forum.de
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Linux-Dienst: Service Script
systemd wäre kein Problem. Aber den nutzt Alpine nicht.af0815 hat geschrieben: Mo 17. Mai 2021, 11:14 Info zu Systemd auch hier zum Einstieg: https://www.linux.com/training-tutorial ... -stopping/ (Englisch) bzw. in der Wiki steht sowieso was zu systemd weiter unten.

Tipp für PostgreSQL: www.pg-forum.de
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Linux-Dienst: Service Script
Hi!
Wenn Du so etwas Exotisches wie AlpineLinux verwendetest, dann musst Du Dich schon selbst um Systemaufgaben kümmern. Ich glaub kaum, dass jemand anderes hier diesen Exoten benutzt.
Und Alpine ist seit Jahrzehnten die Renn-Sport-Abteilung von Renault. Wenn das mal keinen Ärger gibt...
Da Dein System weder SysVinit noch Systemd benutzt, musst Dir selbst was schnitzen.
Hier ist die Handbuch-Seite zu Deinem StartSystem openrc:
https://docs.alpinelinux.org/user-handb ... penrc.html
Hättest Du Dir auch selbst raussuchen können.
Winni
Wenn Du so etwas Exotisches wie AlpineLinux verwendetest, dann musst Du Dich schon selbst um Systemaufgaben kümmern. Ich glaub kaum, dass jemand anderes hier diesen Exoten benutzt.
Und Alpine ist seit Jahrzehnten die Renn-Sport-Abteilung von Renault. Wenn das mal keinen Ärger gibt...
Da Dein System weder SysVinit noch Systemd benutzt, musst Dir selbst was schnitzen.
Hier ist die Handbuch-Seite zu Deinem StartSystem openrc:
https://docs.alpinelinux.org/user-handb ... penrc.html
Hättest Du Dir auch selbst raussuchen können.
Winni
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Linux-Dienst: Service Script
Moin,
ich hab kein Problem das zu selbst zu schreiben. Aber wieso immer das Rad neu erfinden? Der genannte Link zeigt mir doch nur, wie ich Daemons starte und aktiviere. So wie das eigentlich schon immer war vor systemd. Mir ging es an sich nur um das Skript.
Ausserdem ist Alpine nicht exotisch. Ich schätze mal 80% und mehr aller Docker-Container laufen damit... Nur weil nicht Debian/Ubuntu drauf steht, heißt es nicht, dass es exotisch ist.
. Alpine Linux gibt es seit 2010, Renault nennt ihre Spritverschwender seit 2020 so. Also da hätte dann eher Renault das abgekupfert.
Aber wir schweifen ab.
Übrigens läuft das Skript wie es ausschaut ohne Probleme.
ich hab kein Problem das zu selbst zu schreiben. Aber wieso immer das Rad neu erfinden? Der genannte Link zeigt mir doch nur, wie ich Daemons starte und aktiviere. So wie das eigentlich schon immer war vor systemd. Mir ging es an sich nur um das Skript.
Ausserdem ist Alpine nicht exotisch. Ich schätze mal 80% und mehr aller Docker-Container laufen damit... Nur weil nicht Debian/Ubuntu drauf steht, heißt es nicht, dass es exotisch ist.


Übrigens läuft das Skript wie es ausschaut ohne Probleme.
Tipp für PostgreSQL: www.pg-forum.de
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Linux-Dienst: Service Script
Renault nennt seine Renn-Sport-Abteilung seit den 1970ern Alpine. Erstmal informieren, bevor man lostippt. Aber wir schweifen ab.Ich934 hat geschrieben: Di 18. Mai 2021, 06:16 Moin,
Alpine Linux gibt es seit 2010, Renault nennt ihre Spritverschwender seit 2020 so. Also da hätte dann eher Renault das abgekupfert.Aber wir schweifen ab.
Winni
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Linux-Dienst: Service Script
1954...Winni hat geschrieben: Di 18. Mai 2021, 10:38Renault nennt seine Renn-Sport-Abteilung seit den 1970ern Alpine. Erstmal informieren, bevor man lostippt. Aber wir schweifen ab

Tipp für PostgreSQL: www.pg-forum.de
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Linux-Dienst: Service Script
Nicht einmal Lesen kannst Du.
Alpine wurde 1955 gegründet, hatte aber nix mit Renault zu tun.
Bis es 1973 von Renault übernommen wurde.
Hilfe!