Я искал лучший способ найти количество запущенных процессов с тем же именем через командную строку в Linux. Например, если бы я хотел найти количество запущенных процессов bash и получить «5». В настоящее время у меня есть сценарий, который выполняет «pidof», а затем делает подсчет для токенированной строки. Это работает отлично, но мне было интересно, есть ли лучший способ, который можно сделать полностью через командную строку. Заранее спасибо за вашу помощь.Поиск количества процессов в Linux через командную строку
ответ
В системах pgrep
доступных, вариант -c
возвращает счетчик количества процессов, которые соответствуют данному имени
pgrep -c command_name
Обратите внимание, что это grep
-стиля матча, а не точного , так, например, pgrep sh
также будет соответствовать процессам bash
. Если вы хотите точное совпадение, используйте также опцию -x
.
Если pgrep
недоступно, вы можете использовать ps
и wc
.
ps -C command_name --no-headers | wc -l
-C
вариант ps
принимает command_name
в качестве аргумента, и программа печатает таблицу с информацией о процессах, исполняемым имя которого совпадает с заданным именем команды. Это точное совпадение, а не grep
-стиль. Опция --no-headers
подавляет заголовки таблицы, которые обычно печатаются как первая строка. С --no-headers
вы получаете одну линию для каждого процесса. Затем wc -l
подсчитывает и печатает количество строк на входе.
result=`ps -Al | grep command-name | wc -l`
echo $result
Это именно то, что Я искал :) –
ps -Al | grep -c bash
Следующий сценарий bash может быть запущен как задание cron, и вы можете получить электронную почту, если какой-либо процесс слишком сильно перескакивает.
for i in `ps -A -o comm= --sort=+comm | uniq`;
do
if ((`ps -C $i --no-headers | wc -l` > 10)); then
echo `hostname` $i `ps -C $i --no-headers | wc -l` ;
fi
done
Замените 10 на ваш вопрос.
TODO: «10» также может передаваться как параметр командной строки. Кроме того, в список исключений можно включить несколько системных процессов.
Некоторые из вышеперечисленных не работали для меня, но они помогли мне на этом пути.
ps aux | grep [j]ava -c
Для новичков в Linux:
ps aux
печатает все запущенных процессов, grep
поиск всех процессов, которые соответствуют слову Java, в []
скобки удалить процесс, который вы только что бежал так это обыкновение включать что в качестве ходового процесса и, наконец, опция -c
означает количество.
Вы можете попробовать:
пс -ef | Grep -cw [р] rocess_name
ИЛИ
пс Окс | Grep -cw [р] rocess_name
например:
пс -ef | Grep -CW [я] нит
Мне нравится, как просто и чисто это решение –
Я не знаю, что это на других дистрибутивах, но на Ubuntu, это:
nproc
nproc
является частью coreutils
. Таким образом, он должен быть доступен на большинстве дистрибутивов Linux.
Список всех имен процесса, сортировки и подсчета
ps --no-headers -A -o comm | sort | uniq -c
Вы также можете перечислить процесс, прикрепленную к TTY
ps --no-headers a -o comm | sort | uniq -c
Вы можете фильтровать с:
ps --no-headers -A -o comm | awk '{ list[$1] ++ } END { for (i in list) { if (list[i] > 10) printf ("%20s: %s\n", i, list[i]) } }'
- 1. Извлечь файл_имя.zip.001 через командную строку Linux
- 2. Как изменить командную строку в списке процессов?
- 3. cobertura через командную строку
- 4. Аутентификация через командную строку
- 5. Компилирование классов Java в Linux через командную строку
- 6. Выберите солнце Java-версия 7 через командную строку в linux
- 7. замена символа через командную строку
- 8. Отправлять сообщения в программу через командную строку
- 9. Передайте строку в командную строку
- 10. Как установить переменную сеанса PHP через командную строку linux?
- 11. Доступ к LAMPP mysql через командную строку на linux
- 12. Linux управляет запущенным процессом vlc через командную строку
- 13. Автоматическая подача ввода в командную строку Linux
- 14. Добавить класс через командную строку
- 15. получить Infotip через командную строку
- 16. Настройка CPPFLAGS через командную строку
- 17. Использование numpy через командную строку
- 18. svn history через командную строку
- 19. Запуск jmeter через командную строку
- 20. тесты андроидов через командную строку
- 21. скомпилировать .java через командную строку
- 22. Restart тора через командную строку
- 23. cucumber maven через командную строку
- 24. Поиск и упорядочивание данных через оконную командную строку
- 25. Запуск php через командную строку
- 26. Как передать свойства tomcat через командную строку
- 27. Установка сервера DB2 через командную строку
- 28. Передача аргументов через командную строку с MPI
- 29. Доступ к моно-приложению через командную строку
- 30. Скрыть командную строку процесса
Убирать заголовки хорошо по какой-то причине, когда я запускаю ps, есть 2 процесса, и когда я запускаю ' ps --no-заголовки | wc -l' есть 3 процесса. Кажется, он считает начальную новую строку? – CMCDragonkai
Хмм, похоже, что 'pgrep -c' не является опцией OpenBSD/Darwin. Не могли бы вы добавить небольшое объяснение, почему вы выбрали эти флаги (для обеих команд)? Без какого-либо объяснения это затрудняет пользователям другого дистрибутива даже использовать страницу «человек», чтобы попытаться перевести ваши намерения ... – cwd
@cwd Конечно, я отредактировал. –