Domanda

Ho diversi script init.d che sto usando per avviare alcuni demoni. La maggior parte di questi script che ho trovato su Internet e usano tutti il ??demone start-stop. La mia comprensione è che " start-stop-daemon " è un comando specifico per le distribuzioni Linux o BSD e non è disponibile su Solaris.

Qual è il modo migliore per tradurre i miei script init.d da Linux a Solaris? Esiste un comando equivalente a start-stop-daemon che posso usare all'incirca?

Dato che non sono un utente di Solaris, sono disposto ad ammettere in anticipo che non so nemmeno se la mia domanda è intrinsecamente non valida o meno.

È stato utile?

Soluzione

start-stop-daemon è una cosa di Linux e non è molto usata su Solaris. Immagino che tu possa eseguire il port del comando, se vuoi riutilizzare i tuoi script init.

Altrimenti dipende dalla versione di Solaris in uso. A partire da Solaris 10 e anche OpenSolaris usano un nuovo framework di script di avvio "Solaris Service Management Facility", che si configura con i comandi svcs , svccfg e svcadm .

Vedi http://www.oracle.com/technetwork/ server-storage / solaris / overview / servicemgmthowto-jsp-135655.html per ulteriori informazioni.

Per le versioni precedenti di Solaris, la maggior parte degli script init sono scritti in pura shell senza alcun comando di aiuto come start-stop-daemon.

Altri suggerimenti

Su Solaris 10 o versioni successive si consiglia di utilizzare SMF, ma in una versione precedente si creava uno script init in /etc/init.d e si collegava ad esso dalle directory rcX.d. Ecco un esempio semplice di uno script di init per l'avvio di un demone rsync:

#!/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: 
ln rsync /etc/rc3.d/S91rsync
for i in `ls -1d /etc/rc*.d | grep -v 3`; do ln rsync $i/K02rsync; done
{ start | stop | restart }" exit 1 ;; esac

Crea un collegamento allo script da ciascuna directory rcX.d (seguendo la convenzione " S " / " K ").

<*>

Vedi il README in ogni directory rcX.d e controlla la pagina man per init.d. Ecco un po 'della pagina man:

  

I nomi dei file nelle directory rc? .d sono nel formato   [SK] nn, dove S significa iniziare questo lavoro, K significa   termina questo lavoro e nn è il numero di sequenza relativo per uccidere o   iniziare il lavoro.

     

Quando si entra in uno stato (init S, 0,2,3, ecc.) lo script rc [S0-6]   esegue quegli script in /etc/rc[S0-6[.d che sono preceduti da K   seguito da quegli script con il prefisso S. Durante l'esecuzione di ciascuno   script in una delle directory / etc / rc [S0-6], / sbin / rc [S0-6]   lo script passa un singolo argomento. Passa l'argomento 'stop'   per gli script con il prefisso K e l'argomento 'start' per gli script   con prefisso S. Non vi è alcun danno nell'applicazione della stessa sequenza   numero a più script.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top