2010-08-01 2 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 

После этой команды я должен держать терминал открытым, даже не могу выйти с помощью Cmd + z. Не могу ли я запустить его в качестве справочной службы?Запуск сервера Webrick в фоновом режиме?

Благодаря

ответ

36

Выход уже дает вам ответ:

=> Call with -d to detach 
+4

Как остановить отдельный сервер Rails? – user3383458

+2

@ user3383458, вы можете убить с помощью 'pkill -f rails'. («-f» не означает «force», а «ищет командную строку ** full ** вместо имени процесса». Поэтому они будут изящно закрываться.) Если вы не хотите идти в ярость и убивать все экземпляры Rails, вы можете найти их все с помощью 'ps -ef | grep rails' и убить тех, которые вы хотите, с помощью 'kill [pid]'. – AlicanC

1

Монгрел камень может сделать это легко.

gem install mongrel 

Тогда вы должны быть в состоянии использовать

mongrel_rails start -d 

-d для режима демона.

+0

Дело в том, что я не могу ни установить, ни удалить Mongrel, ошибку в обоих. – 3zzy

6

В общем, вы можете использовать:

command & 

И это будет отделяться от окна терминала.

Если вы используете Linux, другая опция является использование screen:

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

Вуаля! Он отсоединен. Затем вы можете позвонить screen -r, и ваш процесс вернется, как будто ничего не произошло.

+0

Я думаю, что команда и будет запускать его только в фоновом режиме. Когда вы закроете терминал, он все равно остановится. Но ваше предложение экрана хорошее. – Nick

+0

@Nick Это не на Ubuntu – quantumSoup

+1

'nohup rails server &' будет отсоединяться и работать в фоновом режиме, даже если терминал закрывается или пользователь выходит из системы. – fijiaaron

2

Если вы запустите rails s --help Вы увидите кучу вариантов

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. 

Тот, что вам нужно, чтобы запустить его в качестве демона. Следовательно, решение таково: rails s -d

Смежные вопросы