Назад | Перейти на главную страницу

Linux: найдите тонкий сервер, работающий на порту 80, и убейте его

На моем сервере Linux я запустил:

sudo thin start -p 80 -d

Теперь хочу перезапустить сервер. Проблема в том, что я не могу заставить старый процесс убить его. Я попытался:

netstat -anp

Но на 80-м порту я вижу следующее:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -         

Итак, мне не дали убивать PID ...

Я попытался pgrep -l thin но это ничего мне не дало. Между тем pgrep -l ruby дает мне примерно 6 запущенных процессов. Я действительно не понимаю, почему будет работать несколько потоков Ruby или какой из них мне нужно убить ...

Как убить / перезапустить тонкий демон?

thin является драгоценным камнем Ruby, поэтому имеет смысл только то, что интерпретатор Ruby будет запускать его.

Типичный призыв thin было бы:

bundle exec rails server thin -p $PORT -e $RACK_ENV

В списке процессов из ps команда, это выглядит примерно так:

 6870 pts/3    Rl+    0:01 /usr/bin/ruby script/rails server thin -p 80 -e production

Когда используешь pgrep, по умолчанию он соответствует только имени команды (т.е. ruby). Это не будет совпадать, когда в аргументах появляется искомый шаблон. Для этого вам нужно использовать -f вариант:

pgrep -l -f thin

Возврат тогда выглядит следующим образом:

6870 /usr/bin/ruby script/rails server thin -p 80 -e production

И вуаля, вот и процесс, который вы ищете.

Бег netstat -tulpn как root предоставит вам PID на выходе.

[root@hostname ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      3738/nrpe           
tcp        0      0 127.0.0.1:8005              0.0.0.0:*                   LISTEN      12747/java          
tcp        0      0 127.0.0.1:199               0.0.0.0:*                   LISTEN      3273/snmpd          
tcp        0      0 127.0.0.1:5000              0.0.0.0:*                   LISTEN      30110/python        
tcp        0      0 0.0.0.0:8009                0.0.0.0:*                   LISTEN      12747/java          
tcp        0      0 0.0.0.0:8649                0.0.0.0:*                   LISTEN      19770/gmond         
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1656/mysqld         
tcp        0      0 0.0.0.0:8651                0.0.0.0:*                   LISTEN      19794/gmetad        
tcp        0      0 0.0.0.0:8652                0.0.0.0:*                   LISTEN      19794/gmetad        
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      12747/java          
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1914/httpd          
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      3885/dnsmasq        
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      13549/sshd          
tcp        0      0 127.0.0.1:5432              0.0.0.0:*                   LISTEN      12403/postgres      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      15834/master        
udp        0      0 0.0.0.0:40462               0.0.0.0:*                               3862/avahi-daemon   
udp        0      0 0.0.0.0:161                 0.0.0.0:*                               3273/snmpd          
udp        0      0 127.0.0.1:53                0.0.0.0:*                               3885/dnsmasq        
udp        0      0 10.182.10.5:8649            0.0.0.0:*                               19770/gmond         
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               3862/avahi-daemon   
udp        0      0 10.182.10.5:123             0.0.0.0:*                               3335/ntpd           
udp        0      0 127.0.0.1:123               0.0.0.0:*                               3335/ntpd           
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               3335/ntpd