2010-08-01 14 views
13
MBPro:shovell myname$ ruby script/server 
=> Booting WEBrick 
=> Rails 2.3.8 application starting on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2010-08-01 15:28:35] INFO WEBrick 1.3.1 
[2010-08-01 15:28:35] INFO ruby 1.9.1 (2010-07-02) [i386-darwin10.4.0] 
[2010-08-01 15:28:35] INFO WEBrick::HTTPServer#start: pid=36349 port=3000 

Después de este comando, tengo que mantener la terminal abierta, ni siquiera puedo salir usando Cmd + z. ¿No puedo ejecutarlo como un servicio en segundo plano?¿Ejecutando el servidor de Webrick en segundo plano?

Gracias

Respuesta

36

La salida ya se le está dando la respuesta:

=> Call with -d to detach 
+4

¿Cómo puedo detener el servidor de Rails desconectado? – user3383458

+2

@ user3383458, puedes matar con 'pkill -f rails'. ("-f" no significa "fuerza", sino "busca la línea de comando ** completa ** en lugar de solamente el nombre del proceso". Por lo tanto, se cerrarán con gracia). Si no quieres volverte loco y matar todas las instancias de Rails, puedes encontrar todas ellas con 'ps -ef | grep rails' y mata los que quieras con 'kill [pid]'. – AlicanC

1

La gema mestizo puede hacer esto fácil.

gem install mongrel 

Entonces usted debe ser capaz de utilizar

mongrel_rails start -d 

-d de modo demonio.

+0

El problema es que no puedo instalar ni desinstalar Mongrel, error en ambos. – 3zzy

6

En general, se puede utilizar:

command & 

Y se separará de la ventana de terminal.

Si está utilizando Linux, otras opciones es usar screen:

screen 
# start your process 
# press Ctrl+a 
# press Ctrl+d 

Voila! Está desapegado. Luego puede llamar al screen -r y su proceso volverá como si nada hubiera sucedido.

+0

Creo que el comando & solo lo ejecutará en segundo plano. Aún se detendrá cuando cierre la terminal. Pero tu sugerencia de pantalla es buena. – Nick

+0

@Nick No se encuentra en Ubuntu – quantumSoup

+1

'nohup rails server &' se desconectará y se ejecutará en segundo plano, incluso si el terminal se cierra o el usuario cierra la sesión. – fijiaaron

2

Si ejecuta rails s --help verá un montón de opciones

Usage: rails server [mongrel, thin etc] [options] 
    -p, --port=port     Runs Rails on the specified port. 
            Default: 3000 
    -b, --binding=IP     Binds Rails to the specified IP. 
            Default: localhost 
    -c, --config=file    Uses a custom rackup configuration. 
    -d, --daemon      Runs server as a Daemon. 
    -u, --debugger     Enables the debugger. 
    -e, --environment=name   Specifies the environment to run this server under (test/development/production). 
            Default: development 
    -P, --pid=pid     Specifies the PID file. 
            Default: tmp/pids/server.pid 

    -h, --help      Shows this help message. 

El que necesitas es correr como un demonio. Por lo tanto, la solución es: rails s -d

Cuestiones relacionadas