init.d script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Afox
Beiträge: 7
Registriert: 20.03.2014 16:12:15

init.d script

Beitrag von Afox » 20.03.2014 16:43:31

Hallo debianforum.de Gemeinde,

ich bin ein Unwissender der gerade versucht ein init-Script für Debian 7 mit einer fast schon perfekten Vorlage zu erstellen.

In dieser Vorlage nutzt der Author folgenden wesentlichen Ausdruck um einen nodepush-Server zu starten, stoppen oder neustarten:

Code: Alles auswählen

su Nutzername -s /bin/bash -c "NODE_ENV=production $APP_ROOT/node_modules/.bin/forever start $ARGS"
Es geht mir um den ersten Teil. Kann mir zufällig jemand erklären, was genau bei

Code: Alles auswählen

su Nutzername -s /bin/bash -c
passiert? Welche Rechte/Gruppen/Sonstiges muss der Nutzer hinter dem Nutzernamen besitzen, damit dies erfolgreich ausgeführt werden kann? Wie müsste man es schreiben, wenn root diese Zeile ausführen soll?

Sorry für die Anfängerfragen aber ich versuche wirklich dahinterzukommen.

Grüße,

Afox

DeletedUserReAsG

Re: init.d script

Beitrag von DeletedUserReAsG » 20.03.2014 16:45:07

Du könntest mal ›man su‹ in ein Terminal tippeln und schauen, was dort zu den beiden Optionen steht :)

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

Re: init.d script

Beitrag von smutbert » 20.03.2014 17:02:22

Das wäre in der Tat eine hervoragende und naheliegende Idee :mrgreen:

Wenn du das machst, wirst du herausfinden, dass su den Befehl, der nach -c folgt in der Shell, die nach -s angegeben wird als Benutzer mit dem Namen Nutzername ausführt. Läßt du Nutzername einfach weg, geht su davon aus, dass du root meinst. Nachdem die init-Skripte aber bereits als root ausgeführt werden, könntest du dir dann eigentlich gleich das ganze su sparen und den Befehl direkt ausführen, denke ich…

Willkommen im Debianforum

Afox
Beiträge: 7
Registriert: 20.03.2014 16:12:15

Re: init.d script

Beitrag von Afox » 20.03.2014 18:30:31

beide Antworten waren sehr hilfreich und ich kam nach dem Post von niemand zu dem Ergebnis von smutbert :D

ich gebe zu, dass ich sehr unbeholfen war :roll:

auf jeden Fall habe ich den Nutzernamen nun rausgelöscht und das Ganze sieht jetzt so aus:

Code: Alles auswählen

su -s /bin/bash -c "NODE_ENV=production $APP_ROOT/node_modules/.bin/forever start $ARGS"
Bezüglich des weiteren Verlaufes noch ein zwei Fragen:

Ist es korrekt, dass man das Skript nun ausführbar machen muss mit

Code: Alles auswählen

sudo chmod 755 /etc/init.d/skriptname 
und dann mittels

Code: Alles auswählen

sudo update-rc.d skriptname defaults
eine automatische Eintragung in die Runlevel erfolgt?

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

Re: init.d script

Beitrag von smutbert » 20.03.2014 18:43:59

Ja, wobei sudo in Debian eher unüblich ist. (ich behaupte einmal, dass die meisten sudo gar nicht aktivieren/konfigurieren/installieren und einfach su verwenden)

Afox
Beiträge: 7
Registriert: 20.03.2014 16:12:15

Re: init.d script

Beitrag von Afox » 21.03.2014 03:32:41

vielen herzlichen Dank!

Antworten