Очень часто необходимо использовать 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
Файл не использует динамические библиотеки, а содержит необходимые части библиотек внутри исполняемого файла.
В результате ldd
ничего не может сказать вам о файле.
Это означает, что исполняемый файл не нуждается в динамических библиотеках, но это также означает, что он не может извлечь выгоду из исправлений ошибок в библиотеках, и если интерфейс ядра изменен, статический исполняемый файл не сможет работать с измененным новым ядром.
В вашем особом случае вы проверяете так называемый run time linker
, который используется для связывания динамических библиотек во время выполнения с основным двоичным файлом, mmap()
устанавливая их и создавая правильные смещения для вызовов динамических библиотек. Поскольку эту работу выполняет компоновщик среды выполнения, он не может зависеть от других динамических объектов.