shell-script ausführen @ startup

Status
Für weitere Antworten geschlossen.

cpam

Benutzer
Registriert
14. Sep. 2013
Beiträge
228
Reaktionspunkte
0
Punkte
0
Hallo zusammen,

habe eine shell-script geschrieben, welche ich gerne beim startup ausgeführt hätte.
Habe dazu folgendes gemacht aber es klappt irgendwie nicht.

1. das file liegter unter /etc/init.d
2. etc/rc.d/rc3.d/S20<shellscript name> angelegt

Aber dennoch wird das script nicht ausgeführt. Rechte sind bereits alle auf 777.

Was mache ich hier falsch?

lG
 
mal unter /usr/syno/etc.defaults/rc.d/ probiert? Dort liegen auch die Startscripte der Firmware
Und 0777 ist zuviel, 0755 reicht auch
 
aber Achtung: ein Firmware Upgrade wird dieses Script dort wahrscheinlich nicht überleben :-)
 
/usr/local/etc/rc.d ist für eigene Sachen gedacht.
 
Hallo,

ich habe ein ähnliches Problem:
Ich möchte zum Systemstart ein Script automatisch starten lassen, dass dann ein Backup per rsnapshot ausführt.

Ich habe dazu diese beiden Startfolder ausprobiert.
/opt/etc/init.d/
/usr/local/etc/rc.d/

Bei beiden Varianten wird das Script zwar gestartet, aber es ist kein User (root) angemeldet und die Pfad-Erweiterung für IPKG aus der /opt/profile (/opt/bin und /opt/sbin) werden nicht übernommen.
Wenn ich das selbe Script über die Bash Shell aufrufe, gibt es keine Probleme. Bedeutet das, dass eigentlich gar kein User bei Ausführung des Scriptes angemeldet ist? Wie kann man das Problem lösen?
 
Probiere eine der folgenden Möglichkeiten aus:

1. Ergänze die Pfade in der Environmentvariable PATH zu Beginn Deines Skripts: PATH=$PATH:/opt/bin:/opt/sbin
2. Qualifiziere alle Pfade, schreibe also bei allen Programmen und Daten den kompletten Pfad in das Skript - also z.B. statt rsync /usr/syno/bin/rsync.
3. Lade zu Beginn des Skripts die /opt/profile per source /opt/profile
 
Die fehlenden Pfade sind vielleicht nicht das wirkliche Problem, das lässt sich ja relative einfach lösen, notfalls durch Festlegen innerhalb des Scriptes.

Das eigentliche Problem ist ja, dass offenbar kein User angemeldet ist, da ja keine Shell geöffnet wird. Was mich jetzt wundert ist, dass z.B. cron auch ohne Shell arbeitet, aber trotzdem der in der crontab festgelegte User zur Ausführung des Scriptes benutzt wird. Ich vermute, dass ich für mein eigenes Script eine vergleichbare Lösung benötige. Wenn sich dieser User festlegen lässt, dann sollte sich auch das Problem mit den Pfaden von selbst lösen, da ja dann die /etc/profile ebenfalls benutzt werden muss.

Trotzdem erstmal vielen Dank für deine Vorschläge.
 
Cron funktioniert nicht so, wie Du das beschreibst. Probiere einfach einmal einen meiner Vorschläge aus.
 
Das eigentliche Problem ist ja, dass offenbar kein User angemeldet ist, da ja keine Shell geöffnet wird.

Was soll das bedeuten? Eine Shell öffnen... Meinst du ein Fenster, das aufgeht?
Das script wird von root ausgeführt, da muss niemand angemeldet sein.
 
Kurz vorweg: Jetzt funktioniert es so wie es soll! Danke ihr beiden.

dil88 schrieb:
Probiere einfach einmal einen meiner Vorschläge aus.
Ich bin gestern leider nicht mehr dazu gekommen. Habe es jetzt in etwas abgeänderter Form gemacht und es funktioniert jetzt perfekt. Nebenbei hat sich noch ein weiteres Problem mit "df" in Luft aufgelöst, der aus unerfindlichen Gründen seinen Dienst verweigerte obwohl er verfügbar war (Pfad konnte korrekt aufgelöst werden).

Puppetmaster schrieb:
Was soll das bedeuten? Eine Shell öffnen... Meinst du ein Fenster, das aufgeht?
Ja das meinte ich (Fenster, oder Shell Console). Hat sich jetzt aber erledigt.

Puppetmaster schrieb:
Das script wird von root ausgeführt, da muss niemand angemeldet sein.
OK. Dann bedeutet das also tatsächlich, dass nur das Script mit root Rechten ausgeführt wird aber kein root user angemeldet wird. Richtig? Falls ja, hast du damit einen lange gehegten Irrtum bei mir ausgeräumt. ;)

dil88 schrieb:
Cron funktioniert nicht so, wie Du das beschreibst.
Mhmm, gut zu wissen. Ich bin bisher immer davon ausgegangen, dass der "who" Eintrag genau das leistet, wobei mir schon bewusst ist, dass die normalen user ihre eigene crontab besitzen. Allerdings scheint es dann hier ebenfalls eher um die Ausführungsrechte zu gehen, als tatsächlich einen user anzumelden, wie es Puppetmaster ja schon beschrieben hat. ;)

Vielen Dank euch beiden! :)
 
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