TL; DR Chỉ cần chạy lệnh này để giết nó
sudo kill -9 $(lsof -i :3000 -t)
Nguyên nhân gốc:
Vì PID bị khóa trong một tệp và máy chủ web nghĩ rằng nếu tệp đó tồn tại thì có nghĩa là nó đã chạy. Thông thường khi đóng máy chủ web, tệp đó sẽ bị xóa, nhưng trong một số trường hợp, việc xóa đúng sẽ không xảy ra nên bạn phải xóa tệp theo cách thủ công
Giải pháp mới
khi bạn chạy đường ray
=> Khởi động WEBrick
=> Ứng dụng Rails 4.0.4 bắt đầu trong quá trình phát triển http://0.0.0.0:3000
=> Chạy rails server -h
để có thêm tùy chọn khởi động
=> Ctrl-C để tắt máy chủ
Một máy chủ đã chạy. Kiểm tra /your_project_path/tmp/pids/server.pid.
Thoát
Vì vậy, đặt đường dẫn của bạn được hiển thị ở đây /your_project_path/tmp/pids/server.pid
và xóa tệp server.pid này :
rm /your_project_path/tmp/pids/server.pid
HOẶC Trong trường hợp máy chủ của bạn bị tách ra, hãy làm theo các hướng dẫn bên dưới:
Nếu bạn tách máy chủ rails của bạn bằng cách sử dụng lệnh "rails -d" thì,
Loại bỏ đường ray tách rời máy chủ bằng cách sử dụng lệnh
ps -aef | grep rails
HOẶC bằng lệnh này
sudo lsof -wni tcp:3000
sau đó
kill -9 pID
HOẶC sử dụng lệnh này
Để tìm và giết tiến trình theo tên cổng mà chương trình đó đang chạy. Đối với 3000 cổng thay thế mà chương trình của bạn đang chạy.
sudo kill -9 $(lsof -i :3000 -t)
Giải pháp cũ:
rails s -p 4000 -P tmp/pids/server2.pid
Ngoài ra, bạn có thể tìm thấy bài đăng này để có thêm tùy chọn
Rails Update lên 3.2.11 ngắt chạy nhiều máy chủ