Frage

Ich habe mehr init.d-Skripte, die ich einige Daemons starten bin mit. Die meisten dieser Skripte ich im Internet gefunden habe und sie alle verwenden Start-Stop-Daemon. Mein Verständnis ist, dass „start-stop-daemon“ ist ein Befehl, der auf Linux oder BSD-Distributionen spezifisch ist, und ist auf Solaris nicht zur Verfügung.

Was ist der beste Weg, um meinen init.d-Skripte von Linux auf Solaris zu übersetzen? Gibt es einen Befehl entspricht Start-Stopp-Daemon, die ich verwenden kann, grob?

Da ich nicht viel von einem Solaris-Benutzer, ich bin bereit, im Voraus zu sagen, dass ich weiß nicht einmal, wenn meine Frage an mich ungültig ist oder nicht.

War es hilfreich?

Lösung

Start-Stop-Daemon ist ein Linux-Ding, und verwendet nicht so viel auf Solaris. Ich denke, man kann jedoch den Befehl Port, wenn Sie Ihren Init-Skripte wieder verwenden wollen.

Ansonsten hängt es davon ab, welche Version von Solaris Sie verwenden. Beginnend mit Solaris 10 und Opensolaris verwenden sie auch einen neuen Startup-Skript Framework "Solaris Service Management Facility", die Sie mit den Befehlen svcs, svccfg und svcadm konfigurieren.

Siehe http://www.oracle.com/technetwork/ Server-Speicher / solaris / Übersicht / servicemgmthowto-jsp-135655.html für weitere Informationen.

Für ältere Solaris-Versionen der meist Init-Skripte geschrieben werden, in rein Shell ohne Helfer-Befehle wie Start-Stopp-Daemon.

Andere Tipps

Unter Solaris 10 oder höher SMF verwendet, wird empfohlen, ist aber auf einer früheren Version würden Sie ein Init-Skript in /etc/init.d und Link, um es aus den rcX.d Verzeichnisse erstellen. Hier ist ein nackten Knochen Beispiel eines Init-Skript zum Starten eines Rsyncdaemons:

#!/sbin/sh

startcmd () {
    /usr/local/bin/rsync --daemon  # REPLACE WITH YOUR COMMANDS
}

stopcmd () {
    pkill -f "/usr/local/bin/rsync --daemon"  # REPLACE WITH YOUR COMMANDS
}

case "$1" in
'start')
        startcmd
        ;;
'stop')
        stopcmd
        ;;
'restart')
        stopcmd
        sleep 1
        startcmd
        ;;
*)
        echo "Usage: $0 { start | stop | restart }"
        exit 1
        ;;
esac

Erstellen Sie einen Link auf das Skript von jedem rcX.d Verzeichnis (nach der „S“ / „K“ Konvention).

ln rsync /etc/rc3.d/S91rsync
for i in `ls -1d /etc/rc*.d | grep -v 3`; do ln rsync $i/K02rsync; done

Sehen Sie die README in jedem rcX.d Verzeichnis und überprüfen Sie die man-Seite für init.d. Hier ist ein wenig von der man-Seite:

  

Die Dateinamen in rc? .D Verzeichnisse sind von der Form   [SK] nn, wo bedeutet S Job starten, Mittel K   töten diesen Job, und nn ist die relative Sequenznummer für das Töten oder   Starten Sie den Job.

     

Wenn ein Zustand eintritt (init S, 0,2,3, etc.) Die rc [S0-6] Skript   diese Skripte in /etc/rc[S0-6].d ausführt, die mit K Präfix   gefolgt von denen mit S. Präfix Skripte Wenn jede Ausführung   Skript in einem der Datei / etc / rc [S0-6] Verzeichnisse, die / sbin / rc [S0-6]   Skript übergibt ein einziges Argument. Er übergibt das Argument ‚stop‘   für Skripte mit K und das Argument ‚Start‘ für Skripte voran   mit vorangestelltem S. Es gibt keinen Schaden in der gleichen Reihenfolge der Anwendung   Anzahl an mehrere Skripte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top