# eigene rc* befehle?!



## Cynic110 (29. September 2003)

HI ihr!
Ich bin ein Linux neuling, wie viele , und wollte mal wissen ob man eigene rc Befehle machen kann? wie ja z.B. "rcsmb start";"rcapache start" usw... ich weiß mitlerweile wie ich etwas in den "autostart" einbinde, mit einer eigene Script Datei, aber ich würde auch gerne meine eigenen rc Befehle schreiben, das wenn ich z.B. "rcwebkram start" in die Konsole schreibe -> apache, mysql, samba gestartet werden kann... 
Hat doch bestimmt auch etwas mit dem Ordner "/etc/init.d" zu tun, oder? Ich hab Suse 8.1...

Wäre super wenn einer mir einer helfen könnte!


----------



## Retlaw (29. September 2003)

Hallo,

1. Möglichkeit
In das was du "autostart" nennst (ich nehme an du meinst die datei die beim login ausgeführt wird) einen alias eintragen:
alias <dein kommando>=<was wird ausgeführt>
beispiel:
alias ausführliche_anzeige="ls -laF"
dann wird jedesmal wenn du ausführliche_anzeige aufrufst das Kommando ls -laF ausgeführt.

2. Möglichkeit
Du erstellst ein Verzeichnis das du in den Pfad aufnimmst in dem nach ausführbaren Dateien gesucht wird oder erstellst für jedes Kommando ein Script und setzt einen alias darauf.

für dein Beispiel oben:
Scriptname: rcwebkram (Datei mit einem Texteditor erstellen, z.B. vi oder emacs)
X-Recht (braucht man zum Ausführen) setzen: chmod u+x rcwebkram

und als Inhalt ein Shellscript, z.B.

#!/bin/ksh
if [[ $1="start" ]]
then <kommando(s) zum Starten deiner Anwendung(en)
fi

Erklärung:

#!/bin/ksh
braucht man nicht, ist aber guter Stil und zeigt der Shell das es ein Script ist und welche Shell verwendet werden soll, kannst hier auch die Shell eintragen die du verwendest.

if... wenn $1 (der erste Parameter vom Script) "start" ist, dann machen alles was nach dem Wort "then" kommt.
fi... hier ist das if (rückwärts lesen) zu Ende.

Wenn das Script in /home/bla/scripts liegt folgende Zeile in das Autostartscript:
alias rcwebkram="/home/bla/scripts/rcwebkram"
besser ist aber die Variante mit dem Suchpfad, näheres dazu in der Linux-Doku.

Wenn du mehr Funktionen brauchst einfach mal bei google nach Shellscript oder Shellprogrammierung unter Unix/Linux suchen.


----------



## Cynic110 (30. September 2003)

mhh DANKE erstmal für deine Antwort, hat aber irgendwie nicht ganz geklappt. Ich muss mich da nochmal hinsetze und alles möglich testen  Aber echt BIG .


----------



## hulmel (30. September 2003)

*Re: Re: eigene rc* befehle?!*

@Retlaw


> _Original geschrieben von Retlaw _
> *
> #!/bin/ksh
> braucht man nicht, ist aber guter Stil und zeigt der Shell das es ein Script ist und welche Shell verwendet werden soll, kannst hier auch die Shell eintragen die du verwendest.*


#!/bin/ksh
gibt an welche shell benutzt werden soll, in diesem Fall die Korn-Shell. Es gibt gewisse Unterschiede in der Syntax.


----------



## Cynic110 (1. Oktober 2003)

mhh ich habe das jetzt immer mit #!/bin/bash versucht, noch nicht geklappt. Passt das? oder ist das falsch?


----------



## Retlaw (1. Oktober 2003)

stimmt schon, dann wird das Script mit der bash ausgeführt, bei meinem Beispiel (ksh) wird das Script mit der Korn-Shell ausgeführt.
Da kannst du jede vorhandene Shell verwenden, nimm am besten die von der dir die Syntax am besten gefällt.

Erstelle eine Datei mit folgendem Inhalt:

#!/bin/ksh
if [[ $1="start" ]]
then
   apache
   mySQL
   Samba
   was-auch-immer
fi

und speicher die z.B. unter /home/hanspeter/scripte/rcwebkram.
Anstatt hanspeter den Namen von deinem Home-Verzeichnis einsetzen  
Du kannst auch eine andere Shell verwenden, aber dann musst du für den Vergleich evtl. andere Befehle benutzen.
Sorge dafür das man die Datei ausführen kann, dazu in der Konsole folgendes eingeben:
chmod u+x,g+x /home/hanspeter/scripte/rcwebkram

Dann in dein Autostartscript (weiß nicht wie das bei SuSE heißt, bei AIX ist es z.B. .profile) folgendes eintragen:

alias rcwebkram="/home/hanspeter/scripte/rcwebkram"

Beim nächsten einloggen kannst dann mit dem Kommando
rcwebkram start
das Script ausführen.

Anstatt dem alias kannst du auch das Verzeichnis /home/hanspeter/scripte/ in den Suchpfad aufnehmen, dann kannst du alle Scripte die da drin sind als Kommando verwenden.
Dazu musst du die Variable PATH um das Verzeichnis erweitern.

Wenns immer noch nicht klappt dann poste mal bitte die Fehlermeldungen.


----------



## Cynic110 (3. Oktober 2003)

mhh also das script selbst funktioniert schonmal, ich kann, wenn ich in dem Ordner des Scriptes bin mit "./rcwebkram start" und "./rcwebkram stop" die sachen ein und ausschalten. Nur das mit dem Alias klappt irgendwie nicht, es kam auch keine fehlermeldung, ich geh mal davon aus das ich dieses "alias..." in die falsche datei schrieb. Ich habe es einmal mit einer "boot.local" datei ausprobiert und noch mit meiner datei die beim starten ausgeführt wird. Bei beiden ging es nicht, es kamen aber auch wirklich keine fehlermeldungen beim booten...


----------



## Retlaw (5. Oktober 2003)

Tipp den Alias mal in die Konsole ein, wenn er dann geht weißt du das der Alias stimmt. Nach dem Logout ist der natürlich wieder weg.
Der muss dann in die Datei die von der Shell automatisch beim Login für den User gestartet wird, nicht beim Booten.
Für die Korn-Shell z.B. .kshrc


----------

