Cómo iniciar una marcha del programa como un demonio en Ubuntu?

¿Cuál es la forma correcta de empezar a Ir un programa como un demonio en Ubuntu ? A continuación, voy a vigilar con Monit. Debo hacer algo como:

go run myapp.go &

Hay cosas que son específicas a Ir que debo tomar en cuenta ?

  • si no hay urgente necesidad de volver a compilar tu aplicación cada vez que se debe construir en él una vez y ejecutarlo como es con otros lenguajes compilados. véase la respuesta del abad
InformationsquelleAutor Blacksad | 2012-04-08

2 Kommentare

  1. 38

    Usted debe construir un ejecutable para su programa (go build) y, a continuación, escribir una secuencia de comandos para upstart y se ejecuta el programa como un demonio, o utilice una herramienta externa como daemonize. Yo prefiero la segunda solución, porque no dependen de un sistema dependiente de upstart. Con daemonize usted puede comenzar su aplicación como

    daemonize -p /var/run/myapp.pid -l /var/lock/subsys/myapp -u nobody /path/to/myapp.exe

    Esto le dará un bien comportarse de unix proceso de demonio con todo lo necesario demonio preparativos por daemonize.

    • Esta es la forma en que lo hemos hecho en el trabajo. Goroutines complicar daemonization en el proceso. En RHEL utilizamos estándar Sys V start/stop/restart secuencias de comandos. En otros lugares te gustaría usar cualquiera que sea el sistema operativo de destino utiliza…advenedizo, etc. En Windows tenemos un pequeño servicio de Windows escrito en C# que hace la misma cosa.
    • Gracias. ¿Te importaría compartir su C#-Código, Nate?
    • También hay github.com/fiorix/go-daemon como alternativa, específicamente construida para Ir a los programas.
  2. 9

    Hay un informe de error con respecto a la capacidad de daemonize desde dentro de un Ir de programa: http://code.google.com/p/go/issues/detail?id=227

    Pero si lo que deseas es simplemente separar de el proceso que he visto recomendaciones para hacer uno de los siguientes:

    nohup go run myapp.go

    o

    go run myapp.go & disown

    Usted también puede hacer uso de un administrador de procesos, como escribir un init.d, Startup, o el uso de algo como Supervisor, que personalmente me gusta mucho.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea