Question

J'ai plusieurs scripts init.d que j'utilise pour démarrer certains démons. La plupart de ces scripts que j'ai trouvés sur Internet et qui utilisent tous start-stop-daemon. Je crois comprendre que "start-stop-daemon" est une commande spécifique aux distributions Linux ou BSD et non disponible sous Solaris.

Quel est le meilleur moyen de traduire mes scripts init.d de Linux vers Solaris? Existe-t-il une commande équivalente à start-stop-daemon que je puisse utiliser, à peu près?

Comme je ne suis pas un grand utilisateur de Solaris, je suis prêt à admettre d'emblée que je ne sais même pas si ma question est intrinsèquement invalide ou non.

Était-ce utile?

La solution

start-stop-daemon est une chose sous Linux et n’est pas tellement utilisé sous Solaris. J'imagine que vous pouvez porter la commande si vous voulez réutiliser vos scripts d'initialisation.

Sinon, cela dépend de la version de Solaris que vous utilisez. À partir de Solaris 10 et d'OpenSolaris, ils utilisent un nouveau cadre de script de démarrage "Solaris Service Management Facility", que vous configurez à l'aide des commandes svcs , svccfg et svcadm. .

Voir http://www.oracle.com/technetwork/ server-storage / solaris / overview / servicemgmthowto-jsp-135655.html pour plus d'informations.

Dans les versions antérieures de Solaris, la plupart des scripts init sont écrits dans un shell pur sans aucune commande auxiliaire telle que le démon start-stop.

Autres conseils

Il est recommandé d'utiliser SMF sous Solaris 10 ou version ultérieure, mais dans une version antérieure, vous créeriez un script init dans /etc/init.d et le lieriez depuis les répertoires rcX.d. Voici un exemple simple d'un script init permettant de lancer un démon 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

Créez un lien vers le script à partir de chaque répertoire rcX.d (en respectant la convention "S" / "K").

<*>

Consultez le fichier LISEZMOI dans chaque répertoire rcX.d et consultez la page de manuel relative à init.d. Voici un peu de la page de manuel:

  

Les noms de fichier dans les répertoires rc? .d sont de la forme   [SK] nn, où S signifie commencer ce travail, K signifie   tuer ce travail, et nn est le numéro de séquence relatif pour tuer ou   commencer le travail.

     

Lorsque vous entrez dans un état (init S, 0,2,3, etc.), le script rc [S0-6]   exécute les scripts dans /etc/rc[S0-6].d qui ont le préfixe K   suivi des scripts préfixés par S. Lors de l'exécution de chaque   script dans l'un des répertoires / etc / rc [S0-6], le / sbin / rc [S0-6]   Le script passe un seul argument. Il passe l'argument 'stop'   pour les scripts préfixés par K et l'argument 'start' pour les scripts   avec le préfixe S. Il n'y a pas de mal à appliquer la même séquence   nombre à plusieurs scripts.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top