Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Script als init-Script ausführen
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Obelix
Tux's lil' helper
Tux's lil' helper


Joined: 22 Aug 2011
Posts: 100

PostPosted: Sun Sep 02, 2012 10:15 pm    Post subject: Script als init-Script ausführen Reply with quote

Hi,

im Handbuch zu gentoo steht, man solle kein Script in einem init-Script starten, das dann Services startet und sich selbst beendet.
Jetzt habe ich halt genau das Problem:
Ich nutze eine Software, die nicht per Portage und fertigem init-Sctipt kommt, aber selbst ein Script mitbringt, das alles startet und alle Variablen setzt, die gesetzt sein müssen. Das Script ist auch nicht gerade kurz, sodass es nicht wirklich einfach wäre zu sagen, man kopiert eben alles in ein init-Sctipt um.
Gibt es einen sauberen Weg, wie ich ein init-Script schreibe, das eigentlich nur ein shell Script startet? Und am besten wäre es, wenn das dann auch mit "stop" und "restart" klappen würde.
Ich habe es vor einigen Monaten schon mal versucht, einfach aufzurufen, aber ein stop ging dann nicht, geschweige denn ein restart. Und bevor ich wieder ewig dran hinbastle dachte ich, ich frag mal nach, ob mir da jemand den richtigen Weg weisen kann...

Danke an alle, die sich Gedanken machen...
Obelix
_________________
read my lips: NO MORE BUGS!!
Back to top
View user's profile Send private message
schotter
Guru
Guru


Joined: 30 Nov 2004
Posts: 497
Location: Germany, Bavaria, Bayreuth, Pottenstein, Tüchersfeld

PostPosted: Mon Sep 03, 2012 9:37 am    Post subject: Reply with quote

Hi,
ich denke http://www.gentoo.org/doc/en/openrc-migration.xml koennte dein Freund sein bzw. etwas genauer:
Quote:
local.start and local.stop

With OpenRC, /etc/conf.d/local.start and local.stop are deprecated. During the migration to OpenRC, the files are moved to /etc/local.d and gain the suffix .start or .stop. OpenRC then executes those in alphabetic order.

Aber ein start-stop-Skript ist das natuerlich auch nicht, vllt aber ein Anfang^^
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Sep 13, 2012 5:07 pm    Post subject: Reply with quote

Das nachfolgende ist ein minimales Initscript. Das bastelst einfach für dein Programm um. Wichtig ist das der Programmaufruf in stop() das Programm auch wieder vollständig stoppt. depend() ist IMHO optional, kannst aber mit Abhängigkeiten befüllen. chmod +x nicht vergessen. restart() brauchst nicht angeben wenn er einem stop() + start() entspricht, das machst das initscript selbst. Ansonsten schau dir andere initscripts an wie du das reinfummelst.

Code:
#!/sbin/runscript

depend() {
   need XXX
   use XXX
}

start() {
   ebegin "Starting MyProgram"
   #startscript aufrufen
   eend $?
}

stop() {
   ebegin "Stopping MyProgram"
   #stopscript aufrufen
   eend $?
}
Back to top
View user's profile Send private message
Obelix
Tux's lil' helper
Tux's lil' helper


Joined: 22 Aug 2011
Posts: 100

PostPosted: Thu Sep 13, 2012 5:27 pm    Post subject: Reply with quote

danke für die Tipps. Das mit dem Init-Script an und für sich ist mir schon klar. Trotzdem Danke!

Vielleicht habe ich mich zu ungenau ausgedrückt. Ich versuchs nochmal:
Für die Steuerung von KNX/EIB Hausautomatisierungssystemen haben schlaue Menschen eine Software geschrieben (OpenRemote). Einer von ihnen hat eine Serverkomponente gemacht, die mit dem System kommuniziert. Dieser "Server" benötigt viele Komponenten, von denen eigentlich alle mitgebracht werden. Um diesen Server zu starten gibt es ein Script, das hat 368 Zeilen. Man startet es mit Parameter, z.B. "run" (dann bleibt es in der shell stehen), oder "start" (damit läuft es im Hintergrund) und "stop" (damit beendet man den Hintergrundprozess)
Wenn ich im gentoo Initscript wiederum dieses Script aufrufe, dann geht das nicht. Es heißt auch in der gentoo doku, dass man keine anderen Scripte aufrufen soll.

Jetzt wäre meine Hoffnung gewesen, dass findige Köpfe vielleicht einen Trick kennen, wie man es doch schafft sauber (sic!) ein anderes Script aufzurufen. Denn ich möchte nur ungerne das 368 Zeilen lange Sctipt zerlegen und in ein Init-Script packen. Zumal dieses Script mit relativen Pfaden arbeitet, und ich dann alles umschreiben müßte...

Gruß
Obelix
_________________
read my lips: NO MORE BUGS!!
Back to top
View user's profile Send private message
bell
Guru
Guru


Joined: 27 Nov 2007
Posts: 508

PostPosted: Thu Sep 13, 2012 6:12 pm    Post subject: Reply with quote

Wird das Skript manuell als ein User oder als root aufgerufen?

Als root: Mache mal in Deinem Skript folgendes rein
Code:
source /etc/profile
/deinscript start
rein. Damit hast Du schonmal alle Umgebungsvariablen für das Skript verfügbar, falls irgend was davon benötigt wird.

Damit es als User läuft etnsprechend:
Code:
su -lc 'source /etc/profile; /deinscript start' deinscriptuser
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum