2

好的,我正在单独运行乘客,并且犯了一个愚蠢的错误,现在我需要帮助修复。

所以一个测试应用程序目录在特定端口上运行独立乘客,我删除了该目录,以便我可以拉一个新应用程序来代替它(并使用相同的端口)。好吧,根本不考虑乘客,我应该先停止守护进程。好吧,现在港口被绑在某个地方,我终生无法弄清楚如何阻止它。我找到了端口启动的进程,并将其杀死,但无济于事。该地址仍被绑定且无法使用。

如果没有重新启动服务器(对我来说不是一个真正可行的解决方案),我怎样才能一起杀死那个 nginx / 乘客进程,以便我可以在那个端口上启动一个新的乘客实例?

4

2 回答 2

2

运行lsof -i :portnumber例如lsof -i :3000

你会得到这样的东西......

COMMAND     PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Passenger 10514 USERNAME    5u  IPv4 0xea95336b89bfa931      0t0  TCP *:hbci (LISTEN)
Passenger 10515 USERNAME    5u  IPv4 0xea95336b89bfa931      0t0  TCP *:hbci (LISTEN)

kill PID使用...停止进程kill 10514

于 2014-03-31T09:21:56.253 回答
0

Passenger Standalone 会为您启动 Nginx,这就是实际绑定到端口的内容。因为您删除了目录,Passenger Standalone 无法访问 Nginx 的锁定文件或 PID 文件,这就是为什么在杀死Passenger Standalone 时它​​无法为您杀死Nginx。你应该手动杀死 Nginx。

于 2013-03-06T20:29:00.540 回答