Pregunta

Tengo varios scripts init.d que estoy usando para iniciar algunos demonios. La mayoría de estos scripts los he encontrado en Internet y todos usan start-stop-daemon. Tengo entendido que '' start-stop-daemon '' es un comando que es específico de las distribuciones de Linux o BSD y no está disponible en Solaris.

¿Cuál es la mejor manera de traducir mis scripts init.d de Linux a Solaris? ¿Hay un comando equivalente a start-stop-daemon que pueda usar, aproximadamente?

Como no soy un gran usuario de Solaris, estoy dispuesto a admitir por adelantado que ni siquiera sé si mi pregunta es inherentemente inválida o no.

¿Fue útil?

Solución

start-stop-daemon es una cosa de Linux, y no se usa mucho en Solaris. Sin embargo, supongo que puede transferir el comando si desea reutilizar sus scripts de inicio.

De lo contrario, depende de la versión de Solaris que esté utilizando. Comenzando con Solaris 10 y también con OpenSolaris, utilizan un nuevo marco de script de inicio '' Solaris Service Management Facility '', que configura con los comandos svcs , svccfg y svcadm .

Consulte http://www.oracle.com/technetwork/ server-storage / solaris / overview / servicemgmthowto-jsp-135655.html para obtener más información.

Para versiones anteriores de Solaris, la mayoría de los scripts de inicio se escriben en shell puro sin comandos auxiliares como start-stop-daemon.

Otros consejos

En Solaris 10 o posterior se recomienda usar SMF, pero en una versión anterior crearía un script de inicio en /etc/init.d y lo vincularía desde los directorios rcX.d. Aquí hay un ejemplo básico de un script de inicio para lanzar un demonio 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

Cree un enlace al script desde cada directorio rcX.d (siguiendo la convención '' S '' / '' K '').

<*>

Consulte el archivo README en cada directorio rcX.d y consulte la página de manual para init.d. Aquí hay un poco de la página del manual:

  

Los nombres de archivo en los directorios rc? .d tienen la forma   [SK] nn, donde S significa comenzar este trabajo, K significa   matar este trabajo, y nn es el número de secuencia relativa para matar o   comenzando el trabajo.

     

Al ingresar un estado (init S, 0,2,3, etc.), el script rc [S0-6]   ejecuta esos scripts en /etc/rc[S0-6font>.d que tienen el prefijo K   seguido de esos scripts con el prefijo S. Al ejecutar cada   script en uno de los directorios / etc / rc [S0-6], el / sbin / rc [S0-6]   el guión pasa un solo argumento. Pasa el argumento 'stop'   para guiones con el prefijo K y el argumento 'inicio' para guiones   con el prefijo S. No hay daño en aplicar la misma secuencia   número a múltiples scripts.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top