ubuntuusers.de

Start-up Skript?

Status: Gelöst | Ubuntu-Version: Ubuntu 6.06 (Dapper Drake)
Antworten |

stokedfish

Anmeldungsdatum:
25. Mai 2005

Beiträge: 678

Hallo,

ich würde gerne folgende Befehle automatisch beim booten meines Servers ausführen lassen:

sudo chmod 777 /dev/dsp
sudo chmod 777 /dev/mixer
sudo chmod 777 /dev/rtc
perl /home/music/bin/gdd.pl

Das Perl Skript soll dabei als Benutzer "music" ausgeführt werden.

(der Benutzer "music" hat ein Passwort!)

Das ganze soll bei jedem Start meines Servers automatisch ausgeführt werden.

System ist Ubuntu 6.06 LTS.

Wie kann ich das bewerkstelligen?

Danke für eure Hilfe! ☺

Chrissss Team-Icon

Anmeldungsdatum:
31. August 2005

Beiträge: 37971

Pack die Befehle doch einfach in die

rc.local

Tschuess
Christoph

stokedfish

(Themenstarter)

Anmeldungsdatum:
25. Mai 2005

Beiträge: 678

Danke, aber was ist mit dem hier?

Skripte/Autostart-Patch?highlight=%28autostart%29

Und beim sudo Befehl wird doch eine Passwortabfrage kommen, oder? Was dann?

Anschliessend muss ich ja zum Benutzer "music" wechseln, wo schon wieder eine Passwortabfrage kommen wird...

Wie geht das denn alles in der rc.local?

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

stokedfish hat geschrieben:

Danke, aber was ist mit dem hier?

Skripte/Autostart-Patch?highlight=%28autostart%29

Warum kompliziert, wenn's auch einfach geht 😉 Warum solltest du den extra eine komplizierten Patch einrichten, der vielleicht beim nächsten Update zerstört wird, wenn du auch einfach die rc.local editieren kannst?

stokedfish hat geschrieben:

Und beim sudo Befehl wird doch eine Passwortabfrage kommen, oder? Was dann?

Bei der rc.local kannst du das sudo weglassen, da diese Datei bereits als root ausgeführt wird (wie auch der gesamte Startprozess bis zur Anmeldung)

chmod 777 /dev/dsp
chmod 777 /dev/mixer
chmod 777 /dev/rt

stokedfish hat geschrieben:

Anschliessend muss ich ja zum Benutzer "music" wechseln, wo schon wieder eine Passwortabfrage kommen wird...

Das kannst du wie folgt erledigen:

sudo -u music perl /home/music/bin/gdd.pl

Dieser Befehl führt das Perl-Skript als User music aus. Da die rc.local wie gesagt als root ausgeführt wird, kommt bei sudo keine Passwort-Abfrage.

stokedfish hat geschrieben:

Wie geht das denn alles in der rc.local?

Noch einmal komplett:

chmod 777 /dev/dsp
chmod 777 /dev/mixer
chmod 777 /dev/rtc
sudo -u music perl /home/music/bin/gdd.pl

stokedfish

(Themenstarter)

Anmeldungsdatum:
25. Mai 2005

Beiträge: 678

Hallo,

dieses Forum ist einfach super, Danke!! ☺

Aaaber...nun finde ich auf der giantdisc Homepage (ggg ist der giantdisc Server) folgende Bemerkung:

automatically on startup
the server can automatically be started when the system boots. The server should be run as the user music, and not root. The following works good for me on a RedHat system: Add the command
su --command="/home/music/bin/gdd-wrapper.sh" music&
to the end of the file
/etc/rc.d/rc.local

Das Skript sieht wie folgt aus:

music@fishbox:~/bin$ cat gdd-wrapper.sh
#!/bin/sh

# check if GiantDisc server is running. Restarts it if necessary
if [ `ps -e | fgrep gdd.pl | fgrep -v fgrep | wc | awk -- '{print $1}'`  -lt "1" ]
then :
  # gdd.pl is not running - restart it
  #PATH=$PATH:/usr/local/bin:/home/music/bin     This way round it doesnt work on some configurations!
  PATH=$HOME/bin:/usr/local/bin:$PATH
  export PATH
  /home/music/bin/gdd.pl>/dev/null&
  date > /home/music/tmp/cron.txt
  echo "gdd restarted" >> /home/music/tmp/cron.txt
fi

#printenv >> /home/music/tmp/cron.txt
#


Quelle: http://giantdisc.org/man/man2.php#The_server_script_gdd_pl

Leider werde ich daraus nicht schlau...

Ich frage mich nun, ob es eventuell besser ist, anstatt sudo -u music perl /home/music/bin/gdd.pl diesen Skript ausführen zu lassen? Und wenn ja, was müsste ich dazu in die rc.local genau einfügen?

Hat da wer Rat?

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

stokedfish hat geschrieben:

Hallo,

dieses Forum ist einfach super, Danke!! ☺

Aaaber...nun finde ich auf der giantdisc Homepage (ggg ist der giantdisc Server) folgende Bemerkung:

automatically on startup
the server can automatically be started when the system boots. The server should be run as the user music, and not root. The following works good for me on a RedHat system: Add the command
su --command="/home/music/bin/gdd-wrapper.sh" music&
to the end of the file
/etc/rc.d/rc.local

Ich frage mich nun, ob es eventuell besser ist, anstatt sudo -u music perl /home/music/bin/gdd.pl diesen Skript ausführen zu lassen?

Ja, wäre es, da dieses Skript den Server nur startet, wenn es nötig ist, und ihn, sofern benötigt, automatisch neu starten kann.

stokedfish hat geschrieben:

Und wenn ja, was müsste ich dazu in die rc.local genau einfügen?

Sag mal, kannst du nicht lesen? In dem von dir zitierten Artikel wird doch die exakte Zeile genannt, mit der du die sudo Zeile ersetzen musst. Ich hab sie dir mal markiert... nur für den Fall...

stokedfish

(Themenstarter)

Anmeldungsdatum:
25. Mai 2005

Beiträge: 678

Natürlich kann ich lesen - nur steht im GD Forum, dass das obige Skript so zum Teil nicht funktioniert.

Zudem habe ich den obigen Pfad schon in meiner /etc/environment.

Ob es da Konflikte geben könnte?

Nun gut, mein /etc/rc.local sieht nun so aus:

chmod 777 /dev/dsp
chmod 777 /dev/mixer
chmod 777 /dev/rtc
su --command="/home/music/bin/gdd-wrapper.sh" music&
exit 0


Ich boote gleich mal neu!

stokedfish

(Themenstarter)

Anmeldungsdatum:
25. Mai 2005

Beiträge: 678

Nochmals vielen Dank für die Hilfe, das ganze funktioniert so super! ☺

Antworten |