Linux: Programm beim Start automatisch ausführen?
Devon
- sonstiges
Hallo,
ich habe leider nicht allzuviel Ahnung von Linux, aber ich möchte bei einem Linux-Server, dass ein gewisses Programm automatisch ausgeführt wird, wenn der Server hochfährt.
In welche Datei muss ich den Befehl schreiben? Gibt es da irgendwas zu beachten? Ich logge übrigens als root ein, es sollte also keine Probleme mit den Rechten geben...
Grüsse
Devon
Hallo Devon,
ich habe leider nicht allzuviel Ahnung von Linux, aber ich möchte bei einem Linux-Server, dass ein gewisses Programm automatisch ausgeführt wird, wenn der Server hochfährt.
Eine Möglichkeit:
Im Verzeichnis /etc findest du einige Unterverzeichnise rcN.d (N Element der natürlichen Zahlen ;-). Jedes mal wenn ein Runlevel betreten wird, wird das entsprechende Verzeichnis abgearbeitet: d.h. alle Scripte mit einem großem S vorne werden nacheinander ausgeführt (die Reihenfolge hierbei wird von der Zahl hinter dem S bestimmt).
Genauer genommen sind die Scripte hier jedoch eigentlich nur Links zu Scripten in /etc/init.d/. Diese Scripte werden dann mit start (bei SxxName) und stop (bei KxxName) automatisch aufgerufen.
Du mußt also in einem passenden Runlevel (z.B. 2) einen Link auf ein Script (z.B. meinstartscript) in /etc/init.d anlegen in welchem du dein zu startendes Programm aufrufst:
ln -s /etc/init.d/meinstartscript /etc/rc2.d/S50meinstartscript
Dein Script in /etc/init.d sollte dann in etwa so aussehen:
%--
#! /bin/sh
case "$1" in
start)
echo -n "Starting /usr/bin/meinProgramm" # Für das Log
/usr/bin/meinProgramm
stop)
esac
%--
Anschließend mußt du das Script nur noch ausführbar machen.
Ich logge übrigens als root ein, es sollte also keine Probleme mit den Rechten geben...
Das hat so nichts mit dem Einloggen zu tun: Das Script läuft auch ohne das jemand am Computer eingeloggt ist (du wirst schließlich nicht die ganze Zeit vor deinem PC sitzen wollen nur um deine root-Shell zu bewachen, oder?).
Nebenbei: Es ist in 99% der Fälle eine ziemlich schlechte Idee _immer_ als root einzuloggen.
Grüße,
Peter
p.s.: Wenn du eine der kommerziellen Distributionen benutzt kannst du dein Glück auch mit deren Config-Tools versuchen (yast, ...).
p.p.s.: Wenn du SuSE benutzt wird - glaube ich - per default die Konfiguration immer wieder von yast überschrieben. Das läßt sich aber abstellen.
hallo Peter,
Du mußt also in einem passenden Runlevel (z.B. 2)
Runlevel 2 ist nicht unbedingt geeignet, weil nicht auf jedem LINUX vorhanden bzw. "default"-Runlevel - auf FreeBSD bekomme ich mit "init 2" nur eine Fehlermledung ;-). Wichtiger sind 3 und 5 (jedenfalls bei der SuSE). Hilfreich sollte ein Blick in "man init" sein, gegebenenfalls auch "man rc".
einen Link auf ein Script (z.B. meinstartscript) in /etc/init.d anlegen in welchem du dein zu startendes Programm aufrufst:
ln -s /etc/init.d/meinstartscript /etc/rc2.d/S50meinstartscript
Zwar prinzipiell völlig richtig, aber auch hier wieder: ein Verzeichnis "/etc/init.d" gibt es nicht in jedem LINUX
Dein Script in /etc/init.d sollte dann in etwa so aussehen:
%--
#! /bin/shStartet das Programm meinProgramm in /usr/bin
case "$1" in
start)
echo -n "Starting /usr/bin/meinProgramm" # Für das Log
/usr/bin/meinProgramm
stop)Hier würde - falls benötigt - ein stop Kommando stehen
esac
%--
Anschließend mußt du das Script nur noch ausführbar machen.
gutes Beispiel. Es muß nur daran gedacht werden, daß du bei einer solchen Konstruktion in der Regel auch noch ein "Killscript" im entsprechenden Runlevel brauchst, damit das "Programm" bei einem Wechsel des Runlevels nicht ausversehen weiterläuft
Bei der SuSE kann man es sich etwas leichter machen, indem der entsprechende Programmaufruf einfach in /etc/init.d/boot.local eingetragen wird
p.p.s.: Wenn du SuSE benutzt wird - glaube ich - per default die Konfiguration immer wieder von yast überschrieben.
Wird sie - aber nur dann, wenn du an der Konfiguration mit YAST herumspielst, also wenn du zum Beispiel den "RunLevelEditor" benutzt
Das läßt sich aber abstellen.
Oh, das wußte ich noch nicht. Und wie soll das gehen?
Es gibt aber auch eine Reihe "Programme", die besser als "Dämonen" zu bezeichnen sind - in der Windows-Welt wären das "Dienste". Dafür sollte es in /etc die zugehörige *.conf-Datei geben
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Du mußt also in einem passenden Runlevel (z.B. 2)
Runlevel 2 ist nicht unbedingt geeignet, weil nicht auf jedem LINUX vorhanden bzw. "default"-Runlevel - auf FreeBSD bekomme ich mit "init 2" nur eine Fehlermledung ;-). Wichtiger sind 3 und 5 (jedenfalls bei der SuSE).
Stimmt natürlich. Im Zweifelsfall einen Blick in die /etc/inittab werfen. Probleme könnten sich ergeben, wenn das Programm andere Dienste benötigt die noch nicht gestartet wurden (deswegen gibt es ja auch dieses differenzierte Startsystem).
Runlevel 2 ist bei mir Multiuser ohne Netz.
Bei der SuSE kann man es sich etwas leichter machen, indem der entsprechende Programmaufruf einfach in /etc/init.d/boot.local eingetragen wird
... oder so ;-)
p.p.s.: Wenn du SuSE benutzt wird - glaube ich - per default die Konfiguration immer wieder von yast überschrieben.
Wird sie - aber nur dann, wenn du an der Konfiguration mit YAST herumspielst, also wenn du zum Beispiel den "RunLevelEditor" benutztDas läßt sich aber abstellen.
Oh, das wußte ich noch nicht. Und wie soll das gehen?
Ich bin seid einiger Zeit von SuSE runter (und habe jetzt was Anständiges), aber ich meine es gäbe einen Schlüssel in der /etc/rc.config der das bewirkt - ganz sicher bin ich mir aber nicht.
Grüße,
Peter
hi,
Das läßt sich aber abstellen.
Oh, das wußte ich noch nicht. Und wie soll das gehen?
Ich bin seid einiger Zeit von SuSE runter (und habe jetzt was Anständiges)
hm, sehr verständlich, Gründe brauchen wir kaum zu diskutieren ;-) Bei mir ist das "default"-System seit einiger Zeit FreeBSD, und ich bin sehr zufrieden damit. Es gibt aber im "beruflichen Umfeld" derzeit einen regelrechten Run auf die SuSE, ich muß mich also weiterhin damit beschäftigen
aber ich meine es gäbe einen Schlüssel in der /etc/rc.config der das bewirkt - ganz sicher bin ich mir aber nicht
Schade. Übrigens gibt es ab SuSE LINUX 8.1 keine /etc/rc.config mehr, das ist aufgeteilt worden in über 50 Scripts (und weitere Unterverzeichnisse) in /etc/sysconfig.
Grüße aus Berlin
Christoph S.
Hallo,
das klingt ja alles recht kompliziert. Überall wird einem erzählt "Nimm Linux auch im Privatbereich, das ist viel besser als Windows und fast nicht mehr kompliziert". Und wie siehts nun aus? Unter Windows schiebe ich etwas entweder einfach in "Autostart" oder schreibe den Namen der zu startenden Datei mit Pfadangabe einfach in "autoexec.bat" und die Sache ist erledigt. Zeitaufwand: Höchstens 30 Sekunden.
Und wenn ich das hier lese... case-Anweisungen, stop-Befehl, ... ist das echt alles notwendig? Ich möchte nur eine Datei /home/shoutcast/sc_serv automatisch starten lassen, wenn der Server bootet.
Ich hab mal von einer .profile im /home-Verzeichnis gehört. Genügt das nicht? Oder stelle ich mir das echt zu einfach vor? :S
Grüsse
Devon
Hallo Devon,
das klingt ja alles recht kompliziert. Überall wird einem erzählt "Nimm Linux auch im Privatbereich, das ist viel besser als Windows und fast nicht mehr kompliziert". Und wie siehts nun aus? Unter Windows schiebe ich etwas entweder einfach in "Autostart" oder schreibe den Namen der zu startenden Datei mit Pfadangabe einfach in "autoexec.bat" und die Sache ist erledigt. Zeitaufwand: Höchstens 30 Sekunden.
Ok, unter Linux auch :-)
Warum, siehe unten ...
Und wenn ich das hier lese... case-Anweisungen, stop-Befehl, ... ist das echt alles notwendig? Ich möchte nur eine Datei /home/shoutcast/sc_serv automatisch starten lassen, wenn der Server bootet.
Schiefer Vergleich: Kannst Du mit dem Start eines Dienstes unter Windows per Registry-Eintrag vergleichen
Ich hab mal von einer .profile im /home-Verzeichnis gehört. Genügt das nicht? Oder stelle ich mir das echt zu einfach vor? :S
Nein, das ist ungefähr so einfach. Diese Datei wird abgearbeitet, wenn Du eine interaktive Shell startest, d.h. das hier ist vergleichbar mit
Deinem Windows-Autostart :-)
Allerdings heißen diese Dateien z.B. auf meiner RedHat-Kiste .bash_profile, weil meine bevorzugte Shell bash ist, es gibt aber noch andere.
Gruss,
Vinzenz
Hallo Devon,
das klingt ja alles recht kompliziert. Überall wird einem erzählt "Nimm Linux auch im Privatbereich, das ist viel besser als Windows und fast nicht mehr kompliziert". Und wie siehts nun aus? Unter Windows schiebe ich etwas entweder einfach in "Autostart" oder schreibe den Namen der zu startenden Datei mit Pfadangabe einfach in "autoexec.bat" und die Sache ist erledigt. Zeitaufwand: Höchstens 30 Sekunden.
Dafür kann es ja auch passieren, daß sich Programme ganz ungefragt in deinen Autostart Ordner verschieben.
Aber ohne weiter polemisieren zu wollen: Die von mir beschriebene Lösung finde ich persönlich vom Design her am saubersten.
Vielleicht haben wir uns aber auch missverstanden:
Ich war davon ausgegangen, daß du einen reinen Server betreiben willst an dem normalerweise sonst niemand arbeitet.
Jetzt hört sich das aber etwas anders an: Du suchst also eher eine Art autostart Ordner?
Wenn du direkt mit X startest, wird beim Login die Datei .xsession in deinem Home-Verzeichnis abgearbeitet. Hier kannst du nun deinen Programmaufruf reinschreiben - Zeitaufwand 10 Sekunden ;-)
Grüße,
Peter
Hallo,
Ich war davon ausgegangen, daß du einen reinen Server betreiben willst an dem normalerweise sonst niemand arbeitet.
Ja, das ist schon richtig... ich dachte nur, wenn es eine "einfache" Lösung (für Privatzwecke) gibt, könnte ich die ebenso für den Server nutzen. Es stimmt schon, dass sonst niemand daran arbeitet.
Wenn du direkt mit X startest, wird beim Login die Datei .xsession in deinem Home-Verzeichnis abgearbeitet. Hier kannst du nun deinen Programmaufruf reinschreiben - Zeitaufwand 10 Sekunden ;-)
Leider habe ich keine GUI installiert und habe das auch nicht vor, da ich sie eigentlich nicht brauche. Ich werde dann wohl auf deine Lösung zurückgreifen, besten Dank dafür ;)
Grüsse
Devon
hi Devon,
Leider habe ich keine GUI installiert und habe das auch nicht vor, da ich sie eigentlich nicht brauche.
Sehr tapfer - bitte: das ist _ernst_ gemeint und keine Verscheißerung.
Ich werde dann wohl auf deine Lösung zurückgreifen, besten Dank dafür ;)
Vorsicht. Peter hat dir im Wortsinn keine "Lösung" geliefert. Aber er hat im Sinn des Forums das Beste getan, was man hier tun kann: er hat dir einen Weg gezeigt. Wenn das bei dir bereits zu einem Erfolg führt, isses ja gut, und wenn nicht - naja, dann meldest du dich eben einfach wieder ;-)
Grüße aus Berlin
Christoph S.
hallo Devon,
das klingt ja alles recht kompliziert. Überall wird einem erzählt "Nimm Linux auch im Privatbereich, das ist viel besser als Windows und fast nicht mehr kompliziert"
Und das ist in der Regel auch richtig. Nur wird meistens vergessen, _vorher_ zu sagen, daß LINUX eben auch _sehr anderrs_ als WINDOWS ist und die Maßstäbe, die du bei DOS/WINDOWS möglicherweise kennengelernt hast, nicht tgelten können
Und wie siehts nun aus? Unter Windows schiebe ich etwas entweder einfach in "Autostart" oder schreibe den Namen der zu startenden Datei mit Pfadangabe einfach in "autoexec.bat" und die Sache ist erledigt. Zeitaufwand: Höchstens 30 Sekunden.
Wie die anderen bereits gesagt haben: prinzipiell sieht das auch unter LINUX nicht anders aus, du muß nur wissen, wie es geht
Und wenn ich das hier lese... case-Anweisungen, stop-Befehl, ... ist das echt alles notwendig?
Nein. Installiere dir eine SuSE LINUX 8.1, da erledigt das alles das Installations- und Verwaltungstool YAST für dich - aber um den Preis, daß du dann nie verstehen lernen wirst, was "LINUX" eigentlich ist
Ich möchte nur eine Datei /home/shoutcast/sc_serv automatisch starten lassen, wenn der Server bootet.
Ja, dazu hat der Thread inzwischen doch mehrere hilfreiche Hinweise geliefert ...
Ich hab mal von einer .profile im /home-Verzeichnis gehört. Genügt das nicht?
Nein, das genügt nicht, obwohl diese Datei eminent wichtig ist, weil in ihr (unter anderem) auch der "Pfad" festgelegt wird, der für den jeweiligen user-Account gilt. (Bedingt) Vergleichbar mit der autoexec.bat
Oder stelle ich mir das echt zu einfach vor?
LINUX ist beides: unendlich einfach - wenn mans einmal kapiert hat; und unendlich kompliziert - wenn mans (noch) nicht versteht.
Wollen wir jetzt noch 'ne Grundsatzdiskussion beginnen?
ok, Ansatzpunkte dazu:
- LINUX/UNIX-Systeme bieten dir fast ausnahmslos alle Freiheiten, dein "System" selbst zusammenzuschrauben. Der Preis dieser Freiheit: du mußt dich durch unglaubliche viele Details hindurchkämpfen. Wenn dann mal irgendwas nicht funktioniert, hast du jede Möglichkeit, das zu beheben. Dein System wird dadurch immer mehr "dein" System
- WINDOWS bietet dir nahezu keinerlei Freiheit, an deinem "System" selbst etwas einzustellen oder zu verändern. Der Preis: du brauchst zwar kaum etwas von den Details zu verstehen, aber wenn mal irgendwas nicht funktioniert, hast du auch kaum Auswahloptionen, es sei denn, du installierst gleich das ganze System neu. Das System bleibt immer "Windows" und wird niemals "deins"
Grüße aus Berlin
Christoph S.
Hallo,
erstmal Danke für deine Erläuterungen :-)
Wollen wir jetzt noch 'ne Grundsatzdiskussion beginnen?
ok, Ansatzpunkte dazu:
- LINUX/UNIX-Systeme bieten dir fast ausnahmslos alle Freiheiten, dein "System" selbst zusammenzuschrauben. Der Preis dieser Freiheit: du mußt dich durch unglaubliche viele Details hindurchkämpfen. Wenn dann mal irgendwas nicht funktioniert, hast du jede Möglichkeit, das zu beheben. Dein System wird dadurch immer mehr "dein" System
Hm, das klingt wenigstens mal etwas interessanter, als alles was man bisher von Linux/Unix hört. (eher Linux als Unix, weil ersteres eben kostenlos ist)
Aber - wenn wir schon beim Thema sind - die Art, mit der die Linux-Community, oder einzelne Anhänger dieser Community, versuchen weitere Leute für Linux zu gewinnen, ist mehr als peinlich. Da werden bei sämtlichen PC-Magazinen in jeder News, die sich um Windows dreht, die "Kommentieren"-Funktion genutzt, Microsoft und Windows runterzumachen und nebenbei immer Linux zu pushen... ätzend sowas.
Ich brauche Linux nicht beruflich, also habe ich die freie Auswahl, ob ich es nun erlernen möchte oder nicht. Und grade diese Art der Linux-Anhänger hält mich bisher davon ab, Linux zu verwenden... und kaum einer dieser Anhänger ist im Stande, eine ordentliche Pro-Contra-Argumentation zu liefern.
Daher bedank ich mich mal für deine Erläuterungen... wobei ich allerdings auch durch deine Erläuterungen noch der Meinung bin, dass Linux für Anwender, die es schnell und einfach mögen, doch weniger geeignet ist und Windows hier die treffendere Wahl ist. Also ist Linux doch eher für Leute, die Computertechnisch versiert sind, Spass am experimentieren und lernen mit dem Computer haben, als für den "Otto-Normal-Anwender".
Wie auch immer - ich habe es soeben mithilfe dieses Thread geschafft, mein Linux zum automatischen Start der entsprechenden Datei zu bewegen... thx für die Antworten an alle :-)
Grüsse
Devon
hi,
erstmal Danke für deine Erläuterungen :-)
bittesehr
die Art, mit der die Linux-Community, oder einzelne Anhänger dieser Community, versuchen weitere Leute für Linux zu gewinnen, ist mehr als peinlich. Da werden bei sämtlichen PC-Magazinen in jeder News, die sich um Windows dreht, die "Kommentieren"-Funktion genutzt, Microsoft und Windows runterzumachen und nebenbei immer Linux zu pushen... ätzend sowas.
ja ... da kann ich leider nicht anders, als dir vollkommen zuzustimmen. Ich kenne diesen "Umgangston" nur allzugut. Und weil ich sogar hier in diesem vergleichsweise moderaten Forum für manche den Beigeschmack eines griesgrämigen Nörglers habe, der auch sehr barsch auftreten kann: _hier_ im Forum wirst zwar auch ab und zu ein Kraftwort finden, aber längst nicht derart viel Arroganz wie in den LINUX-newsgroups.
Richtig, die "LINUX-Community" gebärdet sich in vielen ihrer newsgroups derart elitär und abweisend, daß man darüber die Vorzüge des Systems, das sie eigentlich zu erläutern hätte, vergißt. Man wird an das Thema leider nicht herangeführt, sondern man wird erstmal verhöhnt und als Unwissender dargestellt. Das ist leider mehr als unpädagogisch
Ich brauche Linux nicht beruflich, also habe ich die freie Auswahl, ob ich es nun erlernen möchte oder nicht. Und grade diese Art der Linux-Anhänger hält mich bisher davon ab, Linux zu verwenden
schade. Es lohnt sich nämlich tatsächlich, wie dir auch zahlreiche Mitglieder des SELFHTML-Forums durchaus bestätigen können
wobei ich allerdings auch durch deine Erläuterungen noch der Meinung bin, dass Linux für Anwender, die es schnell und einfach mögen, doch weniger geeignet ist und Windows hier die treffendere Wahl ist
Das stimmt. Aber so, wie du fragst, gehörst du ja bereits dieser Gruppe nicht mehr an ... du willst wissen, wie dein Rechner bzw. Dein "System" funktioniert, und wie du ihm sagen kannst, daß es gefälligst das zu tun hat, was du ihm aufträgst. Das hebt dich bereits aus der Gruppe der DAU's heraus, oder?
Wie auch immer - ich habe es soeben mithilfe dieses Thread geschafft, mein Linux zum automatischen Start der entsprechenden Datei zu bewegen... thx für die Antworten an alle :-)
na bitte. Wenn doch nur alle Threads einen solchen Erfolg archivwirksam "verbuchen" könnten ;-)
viel Erfolg weiterhin, und:
Grüße aus Berlin
Christoph S.
Hallo devon,
Daher bedank ich mich mal für deine Erläuterungen... wobei ich allerdings auch durch deine Erläuterungen noch der Meinung bin, dass Linux für Anwender, die es schnell und einfach mögen, doch weniger geeignet ist und Windows hier die treffendere Wahl ist. Also ist Linux doch eher für Leute, die Computertechnisch versiert sind, Spass am experimentieren und lernen mit dem Computer haben, als für den "Otto-Normal-Anwender".
das stimmt schon ein Stück weit, wobei mittlerweile z.B. eine SUse Grundinstallation, vorrausgesetzt die Hardware wird ohne Probleme erkannt, und Du willst nix komplizierteres mit dem System anfangen als z.B. Office Software und Internetsurfen wirklich kinderleicht geworden ist.
das Problem ist einfach, dass man immer wieder auf ne Sache stößt, die eben nicht so vollautomatisch läuft, und dann geht es halt an Konfigurationsdateien editieren und eventuell Kompileiren irgendwelcher Sachen, Rechteprobleme, etc... dann wird es für den unerfahrenen Anwender kitzlig (manchmal auch für den Erfahrenen).
Aber mit Suse Versionen im 5 er und 6 er Bereich habe z.B. ich nie ein wirklich für meine Zwecke produktiv nutzbares System hingekriegt, mit der 7.3 er als ich mir sagte, einen letzten Versuch mach ich noch, ja da war ich echt überrascht...
Also Linux wird langsam reif für den Durchschnittsdau, ist es aber halt vielleicht noch nicht ganz.
Also das ist jetzt einfach mal meine Meinung.
Gruss
Marko