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 запущенных процессов. Я не очень понимаю, почему будет работать несколько рубиновых потоков, или какой мне нужно убить...
Как мне убить / перезапустить тонкий демон?
2 ответа
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