pgrep -l rails
时,没有找到这样的进程。因此,我只能杀死ruby进程,但是服务器仍然无法停止。我尝试了./script/server stop
(因为我是通过运行./script/server start
来启动它的),但是那并没有起作用。在Google上搜索并找到一些stackoverflow文章后,我尝试更改本地主机端口的监听端口,但没有成功。有人可以帮忙吗?pgrep -l rails
时,没有找到这样的进程。因此,我只能杀死ruby进程,但是服务器仍然无法停止。我尝试了./script/server stop
(因为我是通过运行./script/server start
来启动它的),但是那并没有起作用。在Google上搜索并找到一些stackoverflow文章后,我尝试更改本地主机端口的监听端口,但没有成功。有人可以帮忙吗?您可以使用以下其他端口:
rails server -p 3001
通常在终端中,您可以尝试使用Ctrl + C
来关闭服务器。
关闭Ruby on Rails默认服务器(即WEBrick
)的另一种方法是:
kill -INT $(cat tmp/pids/server.pid)
$ lsof -wni tcp:3000
然后,使用PID列中的数字终止进程:
例如:
$ kill -9 PID
我找到的其他一些答案是:
在运行中停止rails服务器,请按:
CTRL-C
CTRL-Z
你将重新回到控制台界面,然后输入以下内容(不带$
):
$ fg
你可以使用 killall -9 rails
命令来关闭所有包含 "rails
" 名称的正在运行的应用程序。
killall -9 rails
这样可以让进程正常退出而不需要手动结束。虽然有点麻烦,但这是比手动终止进程更好的方法,也是我能想到的最好的办法。
fuser -n tcp 3000
命令,如果有进程在该端口上运行,则杀死该进程。然后重新启动服务器。或者您可以在另一个端口上启动服务器,命令为 ruby script/server -p 3001
。 - Learnerkillall -9 ruby
完成了工作。 - Arye Eidelmanps aux | grep rails
然后
kill -9 {process_id}
killall -9 rails
命令来结束所有 Rails 进程。 - maximus ツps aux | grep puma
。 - Sami Birnbaumpkill -9 rails
杀掉所有rails进程
更新后的答案
ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9
这将会杀死任何正在运行的rails进程。将 'rails' 替换为其他进程名可以杀死其他进程。
在我的MAC上,killall -9 rails
不能生效。但是killall -9 ruby
可以。
以下是终止服务器进程的步骤:
1. lsof -i tcp:3000
2. kill -9 1234
其中1234
是在第一步中显示的进程PID:localhost:3000。
或者
删除Rails.root/tmp/pids/
下的文件(server.pid),然后重新启动服务器。
或者
使用以下命令在另一个端口中打开应用程序:
rails s -p 3001
我通常使用以下命令:
killall ruby
或者
pkill -9 ruby
这将会杀死所有与Ruby相关的进程,例如rails server
、rails console
等。
1. 只需从Rails应用程序目录中删除pid文件
Rails_app -> tmp -> pids -> pid文件
删除该文件并运行
rails start
2. 对于Rails 5.0及以上版本,您可以使用以下命令
rails restart
如果您正在使用更现代版本的Rails,并且它使用Puma作为Web服务器,您可以运行以下命令来查找卡住的Puma进程:
ps aux | grep puma
85923 100.0 0.8 2682420 131324 s004 R+ 2:54pm 3:27.92 puma 3.12.0 (tcp://0.0.0.0:3010) [my-app]
92463 0.0 0.0 2458404 1976 s008 S+ 3:09pm 0:00.00 grep puma
kill -9 85923
通常情况下,Ctrl-Z 应该就能解决问题了。
这很简单
pkill -9 ruby
没有多余的,也没有少了的