Как найти PID процесса nginx

Чтобы знать, имеет ли установленная Ubuntu 32 или 64 бита:

a) getconf LONG_BIT

b) uname-m

Если это показывает i686 или i386, это означает 32 бита. Если это показывает x86_64, это означает 64 бита.

Если ЦП имеет Ubuntu на 32 бита, должен иметь 32 бита. Если ЦП имеет 64 бита, он может работать в 64 или 32 битах. Таким образом, мы можем выбрать: Ubuntu может иметь 32 бита или 64 битов.

Чтобы знать, имеет ли ЦП 32 или 64 бита:

a) grep-w lm/proc/cpuinfo

Если мы видим, что lm красного цвета имеет 64 бита. Иначе имеет 32 бита.

b) sudo lshw | grep "описание: ЦП"-A 12 | grep ширина

Это говорит ясно, что мы хотим знать.

Команда для обоих infos:

lscpu

Нам просто нужно к взгляду к первым 2 строкам вывода: “Архитектура” сообщает об установленной версии Linux: “i686  представляет один из 32 битов, в то время как “x86_64  обозначает на 64 бита. “Op-режим (op-режимы) ЦП” сообщает о ЦП. “32-разрядный” представляет один из 32 битов, в то время как “32-разрядные, 64-разрядные” или “64-разрядные” стенды для на 64 бита.

5
14.08.2014, 01:52
9 ответов

Но если я пытаюсь убить процессы 1000, 3947, 13596 или 932, то получаю ошибки типа [...]

на выходе ps, 1000 - идентификатор пользователя процесса (grep в этом случае), 3947 - ПИД-регулятор grep, а остальные номера - значения параметров состояния, а не вообще ПИД-регуляторов.

Если вы хотите видеть все процессы по имени, то используйте что-то вроде

ps -lfC nginx

предостережения: вы должны знать точное имя, иначе ps ничего не вернет. Если вы не знаете точное имя, тогда используйте pgrep.

.
2
27.01.2020, 20:32

ps aux -P показывает эти колонки:

$ ps aux -P | head -1
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

Только 2-я колонка - это pid.

Предупреждение: не пытайтесь убить случайные пиды.

pid 3947 был процессом grep, который закончился, когда вы получили ваше приглашение обратно, так что на самом деле нет такого процесса.

Если бы был процесс nginx, вы бы увидели его в выводе grep. Вывод: nginx не запущен на вашей машине.

4
27.01.2020, 20:32

Обычно я нахожу pgrep более удобным, чем ps | grep. Вы также можете посмотреть на killall, если конечной целью является взорвать кучу процессов по имени.

6
27.01.2020, 20:32

Обычный прием, позволяющий избежать появления самой команды grep в выводе ps , заключается в том, чтобы поместить первый символ в класс символов, чтобы он не соответствовал его буквальному «я». . То есть,

$ ps aux | grep [n]ginx

Таким образом, шаблон grep будет соответствовать «nginx», но не буквальному «[n] ginx», который отображается в выводе ps .

3
27.01.2020, 20:32

Очень часто необходимо использовать sudo для управления процессом nginx. Если вы получили ошибку "Операция не разрешена", добавьте ко всем командам ниже sudo. Хотя этот вопрос помечен как 'ps', я хотел бы упомянуть о других возможностях.

Если вы просто хотите остановить nginx, я бы рекомендовал использовать:

service nginx stop

Но если ваша цель - найти сам 'pid' (например, чтобы послать сигнал), я бы рекомендовал искать nginx.pid. Когда nginx запущен, он помещает свой pid в этот файл.

nginx может управляться с помощью сигналов. ID главного процесса по умолчанию записывается в файл /usr/local/nginx/logs/nginx.pid

Однако он может быть и в другом месте.

Если вы компилировали nginx самостоятельно, вы могли бы указать pid-path.

--pid-path=path - задает имя файла nginx.pid, в котором будет храниться идентификатор основного процесса. После установки имя файла всегда можно изменить в конфигурационном файле nginx.conf с помощью директивы pid. По умолчанию файл называется prefix/logs/nginx.pid

В противном случае вы можете явно указать путь к файлу pid в nginx.conf.

Читайте о Nginx Control

Итак, для отправки сигнала просто введите:

kill `cat /path/to/nginx.pid`

Или

kill $(cat /path/to/nginx.pid)

Читайте о убийстве процесса по pid файлу.

Лично я при написании скрипта или инструкции по развертыванию не стал бы доверять остановку или поиск nginx pid на pgrep и тем более на grep, хотя они и применимы на локальной машине. Но в данном случае я бы сократил остановку до pkill (process kill):

pkill nginx
1
27.01.2020, 20:32

на большинстве установок nginx вы можете найти pid в файловой системе: cat /var/run/nginx.pid

1
27.01.2020, 20:32

Para matar todos los procesos nginx que podrías hacer:

kill $(ps aux | grep 'nginx' | awk '{print $2}')
0
27.01.2020, 20:32

попробуйте использовать эту команду

ps -ax | grep nginx

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

0
27.01.2020, 20:32

Запустите эту команду:

sudo kill -9 $(ps aux | grep 'nginx' | awk '{print $2}')
0
27.01.2020, 20:32

Теги

Похожие вопросы