1 개요[ | ]
- Errno::EADDRINUSE
rails server
명령어로 앱 서버를 구동했는데, 포트가 이미 사용중일 때 나오는 오류 메시지
2 문제상황[ | ]
Console
Copy
railsuser@zetawiki:~/MyDemo$ rails server &
[1] 12618
railsuser@zetawiki:~/MyDemo$ => Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-01-26 09:16:59] INFO WEBrick 1.3.1
[2016-01-26 09:16:59] INFO ruby 2.2.1 (2015-02-26) [x86_64-linux]
Exiting
/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `bind': Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)
from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `listen'
from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:461:in `block in tcp_server_sockets'
from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:232:in `each'
... (생략)
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'
[1]+ Exit 1 rails server
railsuser@zetawiki:~/MyDemo$
3 확인[ | ]
Console
Copy
railsuser@zetawiki:~/MyDemo$ netstat -tnlp | grep 3000
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN -
tcp6 0 0 ::1:3000 :::* LISTEN -
- → 다른 계정에서 실행중인 프로세스가 3000번 포트를 사용중임
- → 권한이 없어 PID, 프로세스명은 확인 불가
4 root 계정으로 확인[ | ]
- root 계정으로 확인해보니...
Console
Copy
root@zetawiki:~# netstat -tnlp | grep 3000
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 10835/ruby
tcp6 0 0 ::1:3000 :::* LISTEN 10835/ruby
Console
Copy
root@zetawiki:~# ps -ef | grep 10835 | grep -v grep
testuser 10835 1 0 08:54 ? 00:00:03 /usr/local/rvm/rubies/ruby-2.2.1/bin/ruby bin/rails server
- → testuser 계정으로 실행된 rails 서버가 3000번 포트를 사용중임
5 조치[ | ]
- root 계정[1]으로 프로세스 중지
Console
Copy
root@zetawiki:~# kill -9 10835
root@zetawiki:~# ps -ef | grep 10835 | grep -v grep
root@zetawiki:~#
6 재시도[ | ]
- 원래 계정 railsuser로 다시 rails 서버 구동
Console
Copy
railsuser@zetawiki:~/MyDemo$ rails server &
[1] 17192
railsuser@zetawiki:~/MyDemo$ => Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-01-26 10:43:39] INFO WEBrick 1.3.1
[2016-01-26 10:43:39] INFO ruby 2.2.1 (2015-02-26) [x86_64-linux]
[2016-01-26 10:43:39] INFO WEBrick::HTTPServer#start: pid=17192 port=3000
railsuser@zetawiki:~/MyDemo$
- → rails 서버가 정상적으로 구동됨
7 같이 보기[ | ]
8 참고[ | ]
- ↑ 또는 프로세스 소유자인 testuser 계정
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.