Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

Иван Колдаев

1

Серверу Rails не удается использовать порт, так как он уже занят другим процессом. Как завершить занимающий порт процесс?

Я пытаюсь запустить веб-сервер для приложения на Ruby on Rails на Ubuntu 20.04:

    $ rails server

И получаю:

    => Booting Puma
=> Rails 6.1.3.2 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 5.3.2 (ruby 2.7.4-p191) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 12345
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
=> Booted puma (Server is running on http://127.0.0.1:3000 and http://[::1]:3000)
Exiting
/usr/local/lib/ruby/gems/2.7.0/gems/puma-5.3.2/lib/puma/binder.rb:277:in `initialize': Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)

Конечно, могу запустить rails server на другом порту, но как мне выявить процессы, которые мешают, и завершить их.

Ответы

  • Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

    Сергей Попов

    Узнать процессы использующие интересующий вас порт вы можете командой:

        sudo lsof -i :

    Отобразятся все процессы, которые используют указанный вами .

    Используйте PID из вывода команды lsof -i, чтобы мягко завершить ненужный вам процесс командой:

        sudo kill -15 

    Если процесс не завершается таким образом, то можно завершить его принудительно:

        sudo kill -9 

    1