Mam aplikację postawioną na WeBrick i chciałbym ją odpalić na innym porcie (nie 3000) w trybie daemona. Wchodze na serwer za pomocą putty i używam takiego polecenia
rails server -d -p 3001 --pid tmp/pids/server1.pid
Niestety w odpowiedzi dostaje:
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on http://0.0.0.0:3001
=> Run rails server -h for more startup options
[root@app1 projekt_1]#
i aplikacji nie ma w procesach. Bez -d działa ale zależy mi żeby aplikacja po wyłączeniu putty działała.
Czy da sie to jakoś zrobić ?
W procesach mam tą aplikacje która dziala na porcie 3000, a ja chce włączyc ja na 3001 i ta na 3001 nie może miec tego samego pid’a co ta na 3000, dlatego podejrzewam że jest “A server is already running”.
bin/rails server --daemon --port 3001 --pid /Users/smefju/tmp/webrick/tmp/pids/server.pid
foo & spowoduje, że komenda zostanie wykonana w tle. Proces, który ją reprezentuje jest “potomny” względem procesu shella, który z kolei jest powołany w momencie zalogowania przez putty (ssh). Kiedy zamykasz putty (robisz np exit), proces shella zostaje unicestwiony wraz z procesami potomnymi (dostają one sygnał SIGHUP). nohup powoduje przechwycenie tego sygnału. Imho odpalanie serwera w ten sposób nie jest dobrym podejściem.