我在Mac上,做:
rails服务器
我明白了:
2010-12-17 12:35:15] INFO WEBrick 1.3.1
[2010-12-17 12:35:15] INFO ruby 1.8.7 (2010-08-16) [i686-darwin10.4.0]
[2010-12-17 12:35:15] WARN TCPServer Error: Address already in use - bind(2)
Exiting
Run Code Online (Sandbox Code Playgroud)
我知道我可以在一个新端口上启动一个,但我想杀死这个过程.
idl*_*ers 663
假设您正在寻找杀死端口3000上的任何内容(这是webrick通常使用的),请在终端中键入以查找进程的PID:
$ lsof -wni tcp:3000
Run Code Online (Sandbox Code Playgroud)
然后,使用PID列中的数字来终止进程:
$ kill -9 PID
Run Code Online (Sandbox Code Playgroud)
Bij*_*jan 114
kill -9 $(lsof -i tcp:3000 -t)
Sha*_*riq 28
您需要使用tcp port 3000获取程序的进程ID.获取进程ID
lsof -i tcp:3000 -t
Run Code Online (Sandbox Code Playgroud)
然后使用该进程id,只需使用ubuntu kill命令终止进程.
kill -9 pid
Run Code Online (Sandbox Code Playgroud)
或者只是运行下面提到的组合命令.它将首先获取pid,然后终止该进程.
kill -9 $(lsof -i tcp:3000 -t)
Run Code Online (Sandbox Code Playgroud)
san*_*ark 17
对于任何绊倒这个不在Mac上的问题的人:假设您知道您的服务器在端口3000上运行,您可以通过执行以下操作一次性执行此操作:
fuser -k 3000/tcp
Run Code Online (Sandbox Code Playgroud)
但正如Toby所提到的,Mac OS中fuser的实现相当原始,而且这个命令在mac上不起作用.
dev*_*lip 13
有时候rails服务器有可能无法正常关闭.您可以找到rails使用的进程
ps aux | grep rails
输出就像
user 12609 9.8 0.5 66456 45480 pts/0 Sl+ 21:06 0:02 /home/user/.rvm/rubies/ruby-2.2.0-preview1/bin/ruby bin/rails s
Run Code Online (Sandbox Code Playgroud)
您的rails服务器使用process_id 12609.
你可以通过命令轻松杀死它
杀了-9 12609
Lor*_*isi 11
上面的所有答案都非常好,但我需要一种方法在终端中输入尽可能少的内容,所以我为此创建了一个宝石.您可以只安装一次gem并在每次想要杀死Rails进程时运行命令'shutup'(当时在当前文件夹中).
gem install shutup
然后进入rails项目的当前文件夹并运行
shutup #这将杀死当前正在运行的Rails进程
您可以随时使用命令'shutup'
DICLAIMER:我是这个宝石的创造者
注意:如果您使用rvm全局安装gem
rvm @global do gem install shutup
Run Code Online (Sandbox Code Playgroud)
现有的答案很好,但我发现 Bijan 的答案撒得太广,追上了可能不相关的进程。
这是一个结合了端口和ruby字符串搜索的1-liner
kill -9 $(lsof -i tcp:3000 -t -c ruby -a)
Run Code Online (Sandbox Code Playgroud)
分解它是如何工作的:
kill -9将杀死列出的进程。但首先运行命令$( )
lsof -i tcp:3000列出该端口上的所有进程
-t是简洁模式,所以只是 pid
-c按命令搜索,在本例中是ruby因为我使用的是 puma
-a是all,并将-i和组合-c在一起
默认情况下,rails 服务器使用端口 3000。
因此,您有 2 个选项来运行 Rails 服务器。
1. 您可以通过使用以下命令定义自定义端口来在其他端口上运行服务器
rails s -p 3001
2. 或者您可以通过运行以下命令来终止所有正在运行的 ruby 进程,
killall -9 ruby
然后运行rails server
| 归档时间: |
|
| 查看次数: |
176930 次 |
| 最近记录: |