PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Autostartscript Ausführen



helishcoffe
26.03.14, 15:22
Hey,

ich kämpfe jetzt schon seit gefühlte 10 Stunden an diesem Problem, dass ich mein Autostart-skript nicht richtig zum laufen krieg. Ich habe es ganz normal im /etc/init.d/ verzeichnis erstellt und mit sudo update-rc.d <skriptname> defaults eingebunden. Das gute ist schonmal, dass es auch eigentlich ausgeführt wird.
zum testen habe ich mal echo läuft >> boot.log in mein Skript mit eingefügt, und die Datei wird auch beim Systemstart brav erstellt und "läuft" hineingeschrieben.
Doch der rest wird einfach nicht ausgeführt. Hier mein Skript:


#! /bin/bash
### BEGIN INIT INFO
# Provides: Masterserver
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description:
#
### END INIT INFO

case "$1" in
start)
# Anweisungen zum Starten hier eingeben

echo läuft >> /boot.log
echo "Starte Unity Masterserver"
su -c sh /home/tim/user/UnityMasterserver/MasterServer

;;
stop)
# Anweisungen zum Stoppen hier eingeben
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
exit 0


doch scheinbar wird
su -c sh /home/tim/user/UnityMasterserver/MasterServer nicht ausgeführt.
habe folgende befehle schon probiert:

su -c sh
sh
./
sudo sh
sudo ./

doch es will einfach nicht starten. Wenn ich es manuell starte, dann klappt es auch wunderbar, aber nicht beim Systemstart. Bitte helft mir :/
Das Ganze läuft auf Ubuntu 12.04

DrunkenFreak
26.03.14, 15:38
Lass das sh weg und gebe der Datei Ausführrechte.

Edit: Und natürlich einen Benutzer mit angeben.

helishcoffe
26.03.14, 16:17
Wie genau mache ich das denn ? x: sry bin noch ein echter Neuling was Linux betrifft

tictactux
26.03.14, 16:39
Hallo,

wieso mußt du su verwenden überhaupt? Ein System-Startupscript wird ja als root ausgeführt.

Wenn der Server nicht als root ausgeführt werden soll, gebe als letztes Argument vor dem -c den Namen des Benutzers an (siehe 'man su').

Ansonsten gebe den vollen Pfad zu der Shell (/bin/sh) an, oder setze einen Pfad im Environment am Anfang des Scriptes (z.b.: export PATH=/bin:/usr/bin:/sbin:/usr/sbin).
Eventuell braucht der MasterServer weitere Pfade, k.A.

helishcoffe
26.03.14, 16:49
Habe su jetzt raus, habe es nur zum testen reingemacht. Habe jetzt also nur noch den Pfad an sich dort stehen:


echo läuft >> /boot.log
echo "Starte Unity Masterserver"
/home/tim/user/UnityMasterserver/MasterServer

Doch das hat auch nichts geändert... Manuell ausführen klappt wunderbar, autostart nicht. Ich bin echt am verzweifeln D:

tictactux
26.03.14, 17:55
also ich kenne das Teil leider nicht.

Wenn das aus einem init.d Script nicht läuft, jedoch bei manuellem Starten, würde ich zunächst einmal davon Ausgehen daß etwas mit der Umgebung nicht stimmt (Pfade, Environment, gestartetes Netzwerk und dergleichen).

Versuche mal vor Aufruf des Masterservers mit cd in dessen Verzeichnis zu wechseln (da er ja an einem non-Standard Platz residiert), vielleicht findet er seine Daten einfach nicht (wie startest du das manuell? aus einem Dateimanager? dann wäre das ja praktisch das gleiche).

Ansonsten hoffe ich daß das Teil auch sowas wie ein Benutzerhandbuch hat, sry.

DrunkenFreak
27.03.14, 08:29
Ausführbar sind die Skripte aber alle oder?