Bei Neustart Befehle ausführen

Status
Für weitere Antworten geschlossen.

Juschi66

Benutzer
Mitglied seit
27. Nov 2017
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo Zusammen,

ich möchte bei Neustart folgede Befehle mir root Rechten ausführen um die Homebridge zu starten.
Einrichtung hab ich hinbekommen, jedoch klappt es nur so bei den Neustarts.

Es geht um folgende Befehle:

/var/packages/debian-chroot/scripts/start-stop-status chroot
/etc/init.d/dbus start
screen -d -m avahi-daemon --debug --no-drop-root
screen -d -m homebridge

wie bekomme ich das am besten hin?
Ich weiß leider nicht wie ich die befehle nacheinander mir einer Bash Datei ausführen kann.

VG
 

PatrickS3

Benutzer
Mitglied seit
18. Mrz 2010
Beiträge
547
Punkte für Reaktionen
0
Punkte
42

Juschi66

Benutzer
Mitglied seit
27. Nov 2017
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ich hab dann auch eine sh Datei erstellt und die Befehle so benutzt. Hab auch kombinationen mit && versucht. Manuell auslösen bringt auch keine Besserung. Unter Eigenschaften steht Normal (0). trotzdem startet die Homebride nicht.
Skript sieht so aus:

#!/bin/bash
/var/packages/debian-chroot/scripts/start-stop-status chroot &&
/etc/init.d/dbus start &&
screen -d -m avahi-daemon --debug --no-drop-root &&
screen -d -m homebridge

Per telnet funktionieren die Befehle in der Reihenfolge ohne Probleme
 

Juschi66

Benutzer
Mitglied seit
27. Nov 2017
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ich hab mal versucht alle Befehle in einer Zeile einzugeben ... dann funktionier es per telnet auch nicht ... das wird wohl daran liegen dass Debian chroot erst gestartet werden muss und die befehle dann darin gestartet werden
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
2
Punkte
38
Hi,
I ... das wird wohl daran liegen dass Debian chroot erst gestartet werden muss und die befehle dann darin gestartet werden
Du hast richtig erkannt das die eigentliche Umgebung in der du einen Dienst ausführen willst auch erstmal vorhanden sein muss.

Die GUI (von Debian chroot) ist seit DSM 6 nicht mehr funktional, aber mit ein wenig Geschick geht es über die Kommandozeile ;)
Eine kleine Datenbank hilft der Umgebung Dienste auszuführen, dort musst du entsprechend einen Eintrag setzen.

- CHROOT anhalten:

Rich (BBCode):
/var/packages/debian-chroot/scripts/start-stop-status stop
Stopping Debian Chroot ...
- die sqlite db öffnen
Rich (BBCode):
sqlite3 /volume1/@appstore/debian-chroot/var/debian-chroot.db
- 2 Dienste hinzufügen ( das sollte so passen, wenn du noch nichts hinzugefügt hast. Jeder Wert wird von Null hochgezählt ..)
Rich (BBCode):
INSERT INTO services VALUES ('0', 'cron', '/etc/init.d/cron','ps -p $(cat /var/run/crond.pid)');
Rich (BBCode):
INSERT INTO services VALUES ('1', 'dbus', '/etc/init.d/dbus','ps -p $(cat /var/run/dbus/pid)');
verlassen mit
Rich (BBCode):
.exit
- CHROOT starten
Rich (BBCode):
/var/packages/debian-chroot/scripts/start-stop-status start
Starting Debian Chroot ...
Einlogen
Rich (BBCode):
/var/packages/debian-chroot/scripts/start-stop-status chroot
Prüfung, ist der Dienst gestartet
Rich (BBCode):
/etc/init.d/dbus status
[ ok ] dbus is running.

Und den übrigen Teil kannst du jetzt mittels crontab -e einbauen.

Bob
 

Juschi66

Benutzer
Mitglied seit
27. Nov 2017
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo Bob,

vielen lieben Dank für den Hinweis. Ich habe die Schritte jetzt so ausgeführt wie du das beschrieben hast. Hat wunderbar funktionert.

Jetzt bin ich mir aber nicht ganz sicher wie du das mit crontab -e genau meinst.

Kannst du mir da bitte noch etwas Hilfestellung geben?

Vielen Dank schonmal.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.679
Punkte für Reaktionen
2.080
Punkte
829
"crontab -e" ist ein Kommando, das Du auf der Kommandozeile (siehe Wiki) ausführen lassen kannst, um die crontab-Datei zu editieren.
 

Juschi66

Benutzer
Mitglied seit
27. Nov 2017
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Jetzt hab ich noch eine viel einfachere Lösung gefunden.

Im Taskplaner folgende Befehle zur Ausführung beim Start einfügen:

sleep 2m
CHROOT=/volume1/@appstore/debian-chroot/var/chroottarget
mount -o bind /dev $CHROOT/dev
mount -o bind /proc $CHROOT/proc
mount -o bind /dev/pts $CHROOT/dev/pts
mount -o bind /sys $CHROOT/sys
cp /etc/resolv.conf $CHROOT/etc/resolv.conf
cp /etc/hosts $CHROOT/etc/hosts
# Ab hier können die Befehle eingefügt werden
chroot $CHROOT /etc/init.d/dbus start
chroot $CHROOT screen -d -m avahi-daemon --debug --no-drop-root
chroot $CHROOT screen -d -m homebridge

Ich danke euch für die Lösungsansätze.

VG
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
2
Punkte
38
Auch wenn chroot nicht explizit als Sicherheitsumgebung entwickelt wurde würde ich den jail nur für Anwendungen ansetzen die ohne lib Zugriff einfach nicht laufen.
Das ist hier ja nicht der Fall und deiner Lösung fehlt mir ein sauberen umount.

Ich empfehle einen Blick in das start stop Skript: /var/packages/debian-chroot/scripts/start-stop-status
Hier lässt sich das einreihen und um auch Dubletten zu vermeinten. :)

Bob
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat