View previous topic :: View next topic |
Author |
Message |
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Fri Jan 23, 2009 4:23 pm Post subject: start-stop-daemon mit chroot ? |
|
|
Hallo Zusammen,
ich habe folgendes Problem:
Ich habe 2 chroot-Umgebungen, Code: | /var/test/chroot0
/var/test/chroot1 | in diesen wiederum sind 2 Daemonen zu starten.
Ich habe mir ein Script gebastelt, dass die beiden Daemoen via start.local aufruft.
Code: | #!/bin/sh
chroot /var/test/chroot0 /var/test/foo
chroot /var/test/chroot1 /var/test/foo |
Mir währe es aber lieber, dieses mit dem start-stop-daemon zu machen.
Ich habe nun gelesen, dass es beim start-stop-daemon einen Parameter --chroot gibt, - leider aber ist die man Page nicht wirklich hilfreich.
So, nun aber die Fragen:
Ist es möglich mit dem start-stop-daemon 2 Dämonen in 2 verschiedenen chroot-Umgebungen aufzurufen, und falls ja, wie müssten denn die Einträge aussehen? |
|
Back to top |
|
|
Max Steel Advocate
Joined: 12 Feb 2007 Posts: 2270 Location: My own world! I and Gentoo!
|
Posted: Sat Jan 24, 2009 11:59 am Post subject: |
|
|
Ich würde folgendes vermuten:
start-stop-daemon --start --make-pidfile --chroot /var/test/chroot0 --exec /var/test/foodaemon
Da:
man start-stop-daemon
Code: | -r, --chroot path
chroot to this directory before starting the daemon. All other paths, such
as the path to the daemon, chdir and pidfile, should be relative to the
chroot. |
wenn du named und dhcpd mit dem USE-Flag chroot mergst, kannst du dir den Befehl aus den entsprechenden /etc/init.d/ nochmal genauer anschauen
Edith:
Oder wars eine Variable in der entsprechenden /etc/conf.d/
Edith2:
Zum Stoppen natürlich dementsprechend statt --start eben --stop. _________________ mfg
Steel
___________________
Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2) |
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Sat Jan 24, 2009 2:46 pm Post subject: |
|
|
Danke erstmal für den Tipp.
Das Starten geht so, aber stoppen lassen sie die Daemonen so leider nicht.
Code: |
NAME="foo"
DAEMON="foo.x86"
PATH="/var/test"
start() {
test -x $DAEMON || exit 0
ebegin "Starting $NAME"
start-stop-daemon --start --chroot $PATH/chroot0 --exec $PATH/$DAEMON
start-stop-daemon --start --chroot $PATH/chroot1 --exec $PATH/$DAEMON
eend $? "Failed to start $NAME"
}
stop() {
ebegin "Stopping $NAME"
start-stop-daemon --stop --retry $DAEMON
eend $? "Failed to stop $NAME" |
|
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Sat Jan 24, 2009 4:32 pm Post subject: |
|
|
Schuß ins Blaue: "$PATH/$DAEMON" statt nur $DAEMON.
Außerdem soltest Du vermutlich auch beim Stoppen den -r-Parameter angeben, da ja so Dinge wie pidfile im chroot liegen.
Außerdem: Legt Dein Daemon tatsächlich selbst das pidfile an? Ansonsten solltest Du das auch noch durch Parameter (beim Starten und Stoppen) erledigen. |
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Sat Jan 24, 2009 5:58 pm Post subject: |
|
|
So, ich habe es jetzt mal wie folgt abgeändert:
Code: |
NAME="foo"
DAEMON="foo.x86"
PATH="/var/test"
start() {
test -x $DAEMON || exit 0
ebegin "Starting $NAME"
start-stop-daemon --start --chroot $PATH/chroot0 --exec $PATH/$DAEMON --make-pidfile --pidfile /var/run/$NAME.pid
start-stop-daemon --start --chroot $PATH/chroot1 --exec $PATH/$DAEMON --make-pidfile --pidfile /var/run/$NAME.pid
eend $? "Failed to start $NAME"
}
stop() {
ebegin "Stopping $NAME"
start-stop-daemon --stop --chroot $PATH/chroot0 $PATH/$DAEMON --pidfile /var/run/$NAME.pid
start-stop-daemon --stop --chroot $PATH/chroot1 $PATH/$DAEMON --pidfile /var/run/$NAME.pid
eend $? "Failed to stop $NAME" |
Leider ist es nur so, dass das Starten geht, das Stoppen jedoch nicht.
/etc/init.d/foo start --> foo startet mit z.: Pid 555 und 557
/etc/init.d/foo stop --> foo stopppt nicht, sondern startet 2 weitere Male. --> Pid 555. 557, 886, 889
Sonderbar, oder??
Last edited by 3PO on Sat Jan 24, 2009 7:28 pm; edited 2 times in total |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Sat Jan 24, 2009 7:18 pm Post subject: |
|
|
3PO wrote: | start-stop-daemon --stop --chroot $PATH/chroot0 $PATH/$DAEMON --pidfile /var/run/$NAME.pid |
Möglicherweise wird chroot bei --stop ignoriert. Wie ist es mit
Code: | start-stop-daemon --stop --pidfile $PATH/chroot0/var/run/$NAME.pid |
|
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Sat Jan 24, 2009 7:37 pm Post subject: |
|
|
Code: | start-stop-daemon --stop --pidfile $PATH/chroot0/var/run/$NAME.pid |
Das funktioniert leider auch nicht.
Damit passiert das selbe, wie oben schon genannt.
Mir ist übrigens aufgefallen, dass keine pid-files angelegt werden, obwohl beie Daemonen gestartet weden. |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Sun Jan 25, 2009 4:52 pm Post subject: |
|
|
3PO wrote: | Mir ist übrigens aufgefallen, dass keine pid-files angelegt werden |
Dann ist das der Grund für die Probleme. Wenn das der daemon nicht selbs tut, muss das start-stop-daemon mit tun (Option -m). |
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Sun Jan 25, 2009 4:58 pm Post subject: |
|
|
mv wrote: | Dann ist das der Grund für die Probleme. Wenn das der daemon nicht selbs tut, muss das start-stop-daemon mit tun (Option -m). |
Habe ich doch gemacht.
-m = --make-pidfile (laut man Page)
Code: | .....
start-stop-daemon --start --chroot $PATH/chroot0 --exec $PATH/$DAEMON --make-pidfile --pidfile /var/run/$NAME.pid
..... |
Oder stimmt die Syntax so nicht? |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Sun Jan 25, 2009 8:29 pm Post subject: |
|
|
Das hatte ich überlesen
Wenn kein pid-File erzeugt wird (also innerhalb der chroot), ist das wohl ein Bug von start-stop-daemon. Benutzt Du openrc? |
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Mon Jan 26, 2009 5:08 pm Post subject: |
|
|
mv wrote: |
[...] Benutzt Du openrc? |
Nein.
Sollte ich da benutzen, bzw. würde das mein Problem lösen? |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Mon Jan 26, 2009 5:55 pm Post subject: |
|
|
3PO wrote: | Sollte ich da benutzen, bzw. würde das mein Problem lösen? |
Zumindest hat openrc eine neue Implementation von start-stop-daemon. Ob diese den Bug nicht hat, weiß ich nicht, aber falls man einen Bug fixen muss, ist es besser, man tut das bei der neuesten Version. |
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Tue Jan 27, 2009 6:43 pm Post subject: |
|
|
Ich habe mich mal hier über OpenRC informiert, leider muss ja so einige umkonfiguriert werden, bis alles wieder wie gewohnt läuft, oder? |
|
Back to top |
|
|
Max Steel Advocate
Joined: 12 Feb 2007 Posts: 2270 Location: My own world! I and Gentoo!
|
Posted: Tue Jan 27, 2009 8:20 pm Post subject: |
|
|
Das neue openrc kann die Einstellungen recht effektiv übernehmen, zumindest wegen den Runlevels, was du unbedingt machen solltest wären /etc/conf.d/ und /etc/rc.conf zu überprüfen (etc-update und alles manuell nachschauen was geändert wurde). _________________ mfg
Steel
___________________
Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2) |
|
Back to top |
|
|
3PO Veteran
Joined: 26 Nov 2006 Posts: 1110 Location: Schwabenländle
|
Posted: Tue Jan 27, 2009 8:40 pm Post subject: |
|
|
Das ist aber ganz schön aufwändig.
Das muss ich mir noch schwer überlegen, ob ich das machen will, denn ich habe einige Zeit gebraucht, bis ich die Configs so hatte, wie ich sie haben wollte.
Das währe mehr als ärgelich, wenn das alles nochmal machen müsste.... |
|
Back to top |
|
|
|