На моем сервере 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