Каждая запущеная программа в операциооных системах Unix ( и не только ), имеет уникальный номер, PID процесса. Список всех запущенных процессов можно получить утилитой ps.
# ps -auxefw # Полный список всех запущеных процессов
Однако, зачастую, целесообразней использовать эту команду с выводом на pgrep:
# ps axww | grep cron 586 ?? Is 0:01.48 /usr/sbin/cron -s # ps axjf # Все процессы в виде дерева (Linux) # ps aux | grep ‘ss[h]’ # Найти все PID процесса ssh, исключая PID процесса grep # pgrep -l sshd # Найти PID процесса по имени(или по его части) # echo $$ # PID процесса текушей оболочки # fuser -va 22/tcp # Список процессов использующих порт 22 (Linux) # pmap PID # Карта памяти процессов (выявление утечек памяти) (Linux) # fuser -va /home # Список процессов, имеющих доступ в раздел /home # strace df # Отслеживать(Trace) системные вызовы и сигналы # truss df # Тоже что и выше, но на FreeBSD/Solaris/Unixware
Приоритет процесса
Изменить приоритет процесса можно командой renice. Отрицательное значение, означает более высокий приоритет.
Linux — To Find PID of A Program — pidof
# renice -5 586 # Повысить приоритет процесса с PID 586 586: old priority 0, new priority -5
C помощью nice можно запускать процессы с определенным приоритетом. Что-бы узнать, используете вы, /usr/bin/nice или nice встроенный в шелл, используйте which nice).
# nice -n -5 top # Повысить приоритет процесса(/usr/bin/nice) # nice -n 5 top # Понизить приоритет процесса(/usr/bin/nice) # nice +5 top # nice Встроенный в шелл, понизить приоритет процесса
В то время как nice отвечает за распределение процессорного времени, другая полезная команда ionice, распределяет дисковый IO. Она весьма полезна в случае приложений, активно использующих дисковый IO (например компилирование). Вы можете установить для приложения соответствующий класс ( idle — best effort — real time), загляните в man, там все довольно доступно рассказано.
# ionice c3 -p123 # Установить класс idle для pid 123 (только Linux) # ionice -c2 -n0 firefox # Запустить Фаерфокс с высоким приоритетом и классом best effort # ionice -c3 -p$$ # Установить для текущей оболочки класс idla
Последняя команда очень полезна при компилировании или отладке больших проектов. Любая команда, запущенная из текущей оболочки будет иметь пониженный приоритет. Переменная $$, содержит PID текушей оболочки (попробуйте echo $$) FreeBSD использует idprio/rtprio (0 = максимальный приоритет, 31 = наиболее свободный(most idle)):
# idprio 31 make # Компилировать с низким приоритетом # idprio 31 -1234 # Установить низкий приоритет для PID 1234 # idprio -t -1234 # -t удаляет real time/idle приоритеты
background/foreground
Процессы запущенные в шелле, можно переключать в фоновый режим(background), приостанавливать, нажав [Ctrl]-[Z], и выводить обратно в foreground, так-же можно использовать команды bg and fg. Команда jobs, выведет списох запущенных в фоновом режиме процессов.
# ping cb.vu > ping.log ^Z # Команда ping приостановлена [Ctrl]-[Z] # bg # Отправить в фон и продолжать выполнение # jobs -l # Список фоновых процессов [1] — 36232 Running ping cb.vu > ping.log [2] + 36233 Suspended (tty output) top # fg %2 # Вернуть процесс 2 в обычный режим
Что-бы процесс продолжал свое выполнение после закрытия оболочки, можно воспользоваться командой nohup.
[How To] find the Linux/Unix process ID (PID)
# nohup ping -i 60 > ping.log ping.log https://vds-admin.ru/unix-toolbox/processes» target=»_blank»]vds-admin.ru[/mask_link]
Детальная информация по PID процесса
Господа, пытаюсь понять что грузит сервер утилитами htop и atop. Сайты у меня висят на отдельных юзерах, система работает как fast CGI, так что в принципе ситуация в общем ясна. Осталось только найти скрипты — виновники нагрузки. Вот вижу я процесс — который грузит сильно процессор и жрет памят, но в htop он выглядит как /usr/bin/php5-cgi php Как зная PID процесс узнать что за скрипт его вызвал? Реально ли это вообще? Dram добавил 31.08.2011 в 14:00 strace -p не очень подходит — ибо выдает мегатонны информации, среди которого не понятно что вызвало процесс
На сайте с 28.08.2008
31 августа 2011, 10:22
server-status покажет, какие запросы в данный момент выполняются к web-серверу. Можно глянуть lsof -p , чтобы понять, какие файлы открыты процессом.
Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
На сайте с 16.09.2009
31 августа 2011, 10:26
Может начать с азов? Читайте документацию апача, узнайте про mod_status. Помимо strace можно использовать что-то типа
ls -l /proc/PID/fd
чтобы посмотреть с какими файлами скрипт работает. Или lsof.
Абонементное сопровождение серверов (Debian) Отправить личное сообщение ( ), написать письмо ( ).
На сайте с 28.06.2008
31 августа 2011, 10:34
myhand:
Может начать с азов? Читайте документацию апача, узнайте про mod_status.
Помимо strace можно использовать что-то типа
ls -l /proc/PID/fd
чтобы посмотреть с какими файлами скрипт работает. Или lsof.
Все равно не понятно, вот что выдает: lrwx—— 1 user1 user1 64 Авг 31 14:32 0 -> socket:[420604512] l-wx—— 1 user1 user1 64 Авг 31 14:32 1 -> /var/log/apache2/error.log l-wx—— 1 user1 user1 64 Авг 31 14:32 100 -> pipe:[420603807] l-wx—— 1 user1 user1 64 Авг 31 14:32 101 -> pipe:[420602994] l-wx—— 1 user1 user1 64 Авг 31 14:32 102 -> pipe:[420603100] l-wx—— 1 user1 user1 64 Авг 31 14:32 103 -> pipe:[420603897] l-wx—— 1 user1 user1 64 Авг 31 14:32 104 -> pipe:[420603101] l-wx—— 1 user1 user1 64 Авг 31 14:32 105 -> pipe:[420603808] l-wx—— 1 user1 user1 64 Авг 31 14:32 107 -> pipe:[420603809] l-wx—— 1 user1 user1 64 Авг 31 14:32 108 -> pipe:[420603898] l-wx—— 1 user1 user1 64 Авг 31 14:32 110 -> pipe:[420603899] l-wx—— 1 user1 user1 64 Авг 31 14:32 2 -> /var/log/apache2/error.log lrwx—— 1 user1 user1 64 Авг 31 14:32 3 -> (deleted) /tmp/.xcache.509.0.731847287.lock lr-x—— 1 user1 user1 64 Авг 31 14:32 39 -> pipe:[420566924] lrwx—— 1 user1 user1 64 Авг 31 14:32 4 -> (deleted) /tmp/.xcache.509.1.1439462411.lock l-wx—— 1 user1 user1 64 Авг 31 14:32 42 -> pipe:[420566925] l-wx—— 1 user1 user1 64 Авг 31 14:32 43 -> pipe:[420566991] l-wx—— 1 user1 user1 64 Авг 31 14:32 44 -> pipe:[420567650]
Источник: searchengines.guru
Как узнать, какой процесс прослушивает порт в Windows?
Как узнать, какой процесс прослушивает порт в Windows?
user4883 07 сен ’08 в 06:26 2008-09-07 06:26
2008-09-07 06:26
35 ответов
PowerShell
Get-Process -Id (Get-NetTCPConnection -LocalPort portNumber).OwningProcess
C:> netstat -a -b
(добавьте -n, чтобы остановить попытки разрешения имен хостов, что сделает его намного быстрее)
Обратите внимание на рекомендацию датчанина для TCPView. Выглядит очень полезно!
-a Отображает все соединения и порты прослушивания.
-b Отображает исполняемый файл, участвующий в создании каждого соединения или порта прослушивания. В некоторых случаях известные исполняемые файлы содержат несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании порта подключения или прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP/IP. Обратите внимание, что этот параметр может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений.
-n Отображает адреса и номера портов в числовой форме.
-o Отображает идентификатор процесса-владельца, связанный с каждым соединением.
user1554 07 сен ’08 в 06:28 2008-09-07 06:28
2008-09-07 06:28
Есть родной графический интерфейс для Windows:
- Пуск >> Все программы >> Стандартные >> Системные инструменты >> Монитор ресурсов
или запустить resmon.exe или из вкладки производительности TaskManager
user1290264 18 май ’14 в 05:02 2014-05-18 05:02
2014-05-18 05:02
netstat -aon | find /i «listening»
user1196 07 сен ’08 в 06:32 2008-09-07 06:32
2008-09-07 06:32
Используйте TCPView, если вы хотите графический интерфейс для этого. Это старое приложение Sysinternals, которое Microsoft купила.
user2929 07 сен ’08 в 06:38 2008-09-07 06:38
2008-09-07 06:38
Ключ -b, упомянутый в большинстве ответов, требует наличия прав администратора на компьютере. Вам не нужны повышенные права, чтобы получить имя процесса!
Найдите pid процесса, запущенного по номеру порта (например, 8080)
netstat -ano | findStr «8080»
Найти имя процесса по pid
tasklist /fi «pid eq 2216»
user9137647 24 янв ’18 в 03:50 2018-01-24 03:50
2018-01-24 03:50
Вы можете получить больше информации, если выполните следующую команду:
netstat -aon |find /i «listening» |find «port»
Использование команды «Найти» позволяет фильтровать результаты. find /i «listening» будет отображать только порты «Listening». Обратите внимание, что вам нужно /i, чтобы игнорировать регистр, иначе вы наберете find «LISTENING». |find «port» ограничит результаты только теми, которые содержат определенный номер порта. Обратите внимание, что при этом он также будет фильтровать результаты, которые имеют номер порта в любом месте строки ответа.
user1840368 08 окт ’13 в 18:56 2013-10-08 18:56
2013-10-08 18:56
- Откройте окно командной строки (от имени администратора). В поле «Пуск Поиск» введите «cmd», затем щелкните правой кнопкой мыши «cmd.exe» и выберите «Запуск от имени администратора».
- Введите следующий текст, затем нажмите Enter.
netstat -abno
-a Отображает все соединения и порты прослушивания. -b Отображает исполняемый файл, участвующий в создании каждого соединения или порта прослушивания.
В некоторых случаях известные исполняемые файлы содержат несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании соединения или порта прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP/IP. Обратите внимание, что этот параметр может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений. -n Отображает адреса и номера портов в числовой форме.
ПРИМЕЧАНИЕ. Чтобы найти процесс в диспетчере задач
- Обратите внимание на PID (идентификатор процесса) рядом с портом, который вы просматриваете.
- Откройте диспетчер задач Windows.
- Выберите вкладку «Процессы».
- Найдите PID, который вы указали, когда выполняли netstat на шаге 1.
- Если вы не видите столбец PID, нажмите View / Select Columns. Выберите PID.
- Убедитесь, что выбран параметр «Показывать процессы от всех пользователей».
user1775540 08 ноя ’12 в 01:49 2012-11-08 01:49
2012-11-08 01:49
Получить PID и имя изображения
Используйте только одну команду:
for /f «tokens=5» %a in (‘netstat -aon ^| findstr 9000’) do tasklist /FI «PID eq %a»
где 9000 должен быть заменен вашим номером порта.
Вывод будет содержать что-то вроде этого:
Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ java.exe 5312 Services 0 130,768 K
Объяснение:
-
он перебирает каждую строку из вывода следующей команды:
netstat -aon | findstr 9000
tasklist /FI «PID eq 5312»
Если вы хотите пропустить заголовок и возврат командной строки, вы можете использовать:
echo off tokens=5″ %a in (‘netstat -aon ^| findstr 9000’) do tasklist /NH /FI «PID eq %a») https://stackru.com/questions/34167519/kak-uznat-kakoj-protsess-proslushivaet-port-v-windows» target=»_blank»]stackru.com[/mask_link]