태그 보관물: ruby-on-rails-3.2

ruby-on-rails-3.2

서버가 이미 Rails에서 실행 중입니다 어떻게 해결할 수 있습니까? 참고로 이번에는 Rails cmd의

rails s명령을 사용하여 레일 서버를 시작할 때 표시됩니다A server is already running. Check C:/Sites/folder/Pids/Server.pids

파일을 열면 4 자리 숫자 만 출력 되므로이 문제를 어떻게 해결할 수 있습니까?

참고로

  1. 이번에는 Rails cmd의 다른 인스턴스가 실행되고 있지 않습니다.
  2. 확인 된 작업 관리자이지만 cmd.exe다른 프로세스가 실행되고 있지 않음 만 표시합니다. (Windows 사용).


답변

파일을 제거하십시오. C : /Sites/folder/Pids/Server.pids

설명
우리가 일반적으로 server.pid 같은 파일의 프로세스 ID (PID)를 추적 적어도에서 UNIX 토지. 나는 이것이 여기서 똑같은 일을하고 있다고 생각합니다. 그 파일은 아마도 충돌로 남겨졌을 것입니다.


답변

TL; DR 그냥이 명령을 실행하여 종료하십시오.

sudo kill -9 $(lsof -i :3000 -t)

근본 원인 :
PID가 파일에서 잠기고 웹 서버는 해당 파일이 존재하면 이미 실행 중이라고 생각합니다. 일반적으로 웹 서버는 파일이 삭제됩니다 폐쇄되어 있지만이 파일을 수동으로 제거해야하므로 경우에 따라 적절한 삭제는 발생하지 않을 때
새로운 솔루션을

레일 을 달릴 때

=> 부팅 WEBrick

=> Rails 4.0.4 애플리케이션 개발 시작 http://0.0.0.0:3000

=> rails server -h더 많은 시작 옵션을 위해 실행

=> Ctrl-C를 사용하여 서버를 종료

서버가 이미 실행 중입니다. /your_project_path/tmp/pids/server.pid를 확인하십시오.
종료

경로를 여기 /your_project_path/tmp/pids/server.pid에 표시하십시오.

server.pid 파일을 제거 하십시오.

rm /your_project_path/tmp/pids/server.pid

또는 서버가 분리 된 경우 아래 지침을 따르십시오.

“rails -d”명령을 사용하여 레일 서버를 분리 한 경우,

명령을 사용하여 레일 분리 서버 제거

ps -aef | grep rails

또는이 명령으로

sudo lsof -wni tcp:3000

그때

kill -9 pID

또는이 명령을 사용하십시오

해당 프로그램이 실행중인 포트 이름으로 프로세스를 찾아 종료합니다. 3000의 경우 프로그램이 실행중인 포트를 교체하십시오.

sudo kill -9 $(lsof -i :3000 -t)

오래된 해결책 :

rails s -p 4000 -P tmp/pids/server2.pid

또한 Rails Update to 3.2.11 옵션에 대한 더 많은 옵션을 보려면이 게시물을 찾을 수
있습니다


답변

lsof -wni tcp:3000

그런 다음 루비 프로세스를 볼 수 있고 실행할 수 있습니다

kill -9 processid

지금 프로세스를 실행하는 것이 좋을 것입니다

rails s thin

여러 프로세스를 실행하는 것은 좋은 생각처럼 보이지 않으며 많은 사람들이 읽은 내용에서 동의합니다. 불행히도 레일로 많은 메모리 누수가 발견되어 두 프로세스가 실행되는 것을 상상할 수 없었습니다. 시간이 지남에 따라 메모리에 저장된 데이터로 인해 페이지 새로 고침이 점점 느려집니다.


답변

kill -9 $(lsof -i tcp:3000 -t)


답변

프로세스를 종료하여 프로세스를 제거 할 수 있습니다.

kill -9 $(lsof -i tcp:3000 -t)


답변

$ lsof -wni tcp:3000

# Kill the running process
$ kill -9 5946

$ rm tmp/server.pids

포먼 시작 등 서비스 시작


답변

서버 프로세스를 종료하고 pid 파일이 업데이트되지 않은 경우 발생합니다. 가장 좋은 해결책은 Server.pid 파일을 삭제하는 것입니다 입니다.

명령을 사용하십시오

rm <path to file Server.pid>