[gelöst] Debian global function (source)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

[gelöst] Debian global function (source)

Beitrag von joe2017 » 30.08.2019 15:50:39

Hallo zusammen,

ich bin gerade dabei einen Service zu schreiben, welcher beim System start eigen erstellte functions bereitstellt.
Leider komme ich hier nicht weiter. Ich habe folgendes versucht. Wahrscheinlich ist das nichts großes.

Function_Service.service

Code: Alles auswählen

[Unit]
Description=function service
After=network.target

[Service]
ExecStart=/path/to/script.sh

[Install]
WantedBy=multi-user.target
sudo systemctl start Function_Service.service
sudo systemctl enable Function_Service.service
sudo chmod 755 Function_Service.service


script.sh

Code: Alles auswählen

source /path/to/function/script_1.sh
source /path/to/function/script_2.sh
Wenn ich den Rechner neu starte und mein Terminal öffne bekomme ich die Functions nicht gelistet.
Wenn ich im Terminal source /path/to/function/script_1.sh eintippe, bekomme ich die Functions angezeigt.

Ich habe auch schon versucht im Service folgende Zeile auszutauschen:

Code: Alles auswählen

#ExecStart=/path/to/script.sh
ExecStart=/bin/bash -c "source /path/to/function/script_1.sh"
Das hat leider auch nicht funktioniert?
Woran könnte das liegen?
Zuletzt geändert von joe2017 am 04.09.2019 11:16:13, insgesamt 2-mal geändert.

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Debian Service - load source

Beitrag von inne » 30.08.2019 19:59:41

Hallo,

Ich würde folgendes systemweit in /etc/profile.d/local oder ~/.profile ausführen. Denn ich glaube das ist was du willst.
script.sh

Code: Alles auswählen

source /path/to/function/script_1.sh
source /path/to/function/script_2.sh
Ich hatte mal path/to/function unterhalb /usr/lib/mysuperwork installiert, was ich dann in die jeweiligen Skripte oder die aktuelle Shell inkludiert hatte.

Will auch behaupten mit einer service unit bist du ganz falsch abgebogen?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Debian Service - load source

Beitrag von joe2017 » 02.09.2019 09:47:38

Hallo Inne,

ich dachte mir schon, dass der Service etwas zu viel des Guten ist.
Leider funktioniert deine Anleitung auch nicht.

Ich habe mein Script mit den Angaben (source ...) unter /etc/profile.d/ abgelegt und ausführbar gemacht.
Leider habe ich noch immer keinen Zugriff auf die Funktionen?

Ich befürchte, dass die Funktionen nur innerhalb des ausgeführten Scripts zur Verfügung stehen. Ich möchte jedoch jederzeit auf meine Funktionen zugreifen können.

Mit dem Befehl declare -F kann man sich alle vorhandenen Funktionen anzeigen lassen.
Standardmäßig werden diverse System Funktionen geladen, welche ich gerne erweitern würde.
Ich möchte aber nicht jedes mal meine Funktionen mit source file laden. Diese sollen nach einem Neustart für jeden Benutzer zur Verfügung stehen.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Debian global function (source)

Beitrag von joe2017 » 04.09.2019 11:15:56

Ich habe das Ganze jetzt wie folgt gelöst.

Ich habe in meinem User Logon Script eine Abfrage ob sich mein source Eintrag bereits in der Datei .bashrc befinden.
Wenn nicht wird folgender Eintrag hinzugefügt.

Code: Alles auswählen

source /path/to/script-with-functions.sh

Antworten