当我运行ruby
script/server -e test
时,它在控制台上运行。当我关闭控制台时,它也会停止进程。我想在后台运行服务器。我该如何做到这一点?script/server -e test
时,它在控制台上运行。当我关闭控制台时,它也会停止进程。我想在后台运行服务器。我该如何做到这一点?script/server -d
将其作为守护进程运行。rails server thin -d
停止服务时,请运行命令:kill -9 $(cat tmp/pids/server.pid)
rails server -u thin -d
- Sunwoo Yang可能有点晚了回答,但对未来的人有好处。
假设要在Unix/Linux操作系统中将Rails(或任何后台服务)放置到后台的最简单和快捷的方法是:
$ nohup rails server &
这适用于任何类似的服务:
$ nohup <service command> &
在服务器命令结尾加上 &
:
script/server -e test&
它将把它放到后台。
或者您可以使用其他服务器,如thin:http://code.macournoyer.com/thin/
(sudo) gem install thin
然后使用以下方法启动和停止它:
thin start
thin stop
一种方法是使用Screen来实现,即使在ssh连接下也可以保持连接,它会创建一个子终端,不受当前控制台的影响。sudo apt-get install screen
安装Screen screen
启动Screen 然后启动Rails rails server &
。 &
只是让它在后台运行。要停止它,请键入kill -9 #
,其中#
是启动时给出的编号。
按下“Ctrl + A”以退出,并键入screen -r
以返回到Screen终端。
screen
真的很专业吗?我觉得我应该将其绑定到套接字并通过我的 HTTPD 服务器获取它或类似的方式。 - IIllIIll-d
标志实现这一点,只需运行以下命令:rails server puma -d
-p
标志。rails server -p 3002 puma -d
ps aux | grep puma
ps aux | grep puma | awk {'print $2'} | xargs kill
如果您想立即停止进程,请使用以下命令。但是,这并不推荐:
ps aux | grep puma | awk {'print $2'} | xargs kill -9
注意:awk
选择行输出中的第二项($2
),即PID,而 xargs
将 awk
中的PID 作为参数接受。
您也可以使用 systemd
实现此操作 - Puma Systemd Configuration for Rails Not Working。
*nix
系统上,你可以通过以下方式检查它是否正在运行:ps aux | grep 'script/server'
。 - Swanand