4 votos

¿Hay algún puerto de start-stop-daemon para OS X?

Estoy tratando de utilizar algunos init.d script bajo OS X y yo mientras que algunos sólo están trabajando correctamente, descubrí bastantes que para confiar en /sbin/start-stop-daemon y estoy buscando un puerto para OS X.

¿Alguna idea?

Sé que OS X no tiene soporte para init.d pero no hay nada que te impida usarlo para iniciar/detener algunos servicios. Es mucho más fácil instalar cosas como postgres, nginx usando brew y controlarlos usando el habitual service name start|stop|restart .

0 votos

Yo también quiero esto. No quiero usar una herramienta separada porque quiero jugar con ella localmente en mi Macbook para aprender antes de hacer cambios en un servidor Linux que ejecuta mis aplicaciones que utiliza start-stop-daemon .

2voto

Manrico Corazzi Puntos 6458

Es necesario mirar launchd que utiliza archivos de configuración *.plist en:

/Library/LaunchAgents/ , /Library/LaunchDaemons/ y ~/Library/LaunchAgents/

En /System/Library/LaunchAgents/ y /System/Library/LaunchDaemons/ son las que proporciona Mac OS X.

Cuando se instala, por ejemplo, postgresql de Macports, también se instalará un org.macports.postgresql93-server.plist archivo en /Library/LaunchDaemons/ (es un enlace a un archivo .plist que se instala en /opt/local/etc/LaunchDaemons/org.macports.postgresql93-server ) pero el demonio no está habilitado en la instalación.

El contenido de este archivo .plist es (la clave <key>Disabled</key><true/> debe ser establecido en false, si necesita habilitar el demonio) :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>org.macports.postgresql93-server</string>
<key>ProgramArguments</key>
<array>
    <string>/opt/local/bin/daemondo</string>
    <string>--label=postgresql93-server</string>
    <string>--start-cmd</string>
    <string>/opt/local/etc/LaunchDaemons/org.macports.postgresql93-server/postgresql93-server.wrapper</string>
    <string>start</string>
    <string>;</string>
    <string>--stop-cmd</string>
    <string>/opt/local/etc/LaunchDaemons/org.macports.postgresql93-server/postgresql93-server.wrapper</string>
    <string>stop</string>
    <string>;</string>
    <string>--restart-cmd</string>
    <string>/opt/local/etc/LaunchDaemons/org.macports.postgresql93-server/postgresql93-server.wrapper</string>
    <string>restart</string>
    <string>;</string>
    <string>--pid=none</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>

0 votos

Tío, eso es mucho trabajo. El viejo diseño de Unix es mucho más compacto. Y no sólo Mac OS X está cargando al usuario aquí, systemd y upstart han ido en esta dirección también.

2voto

Pockata Puntos 174

La respuesta de René Larsen encierra el secreto, pero no se ha dicho. Lo que hay que hacer es instalar MacPorts, que proporciona el programa daemondo (instalado en /opt/local/bin/daemondo en mi sistema).

Desde la pantalla de ayuda: "daemondo es un programa envolvente que ejecuta demonios". Parece que proporciona argumentos y funcionalidades similares a start-stop-daemon.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X