Как я могу перечислить запускающие скрипты удара под названием сценарий?

ps возвраты bash как название процесса... Я хотел бы название сценария оболочки вместо этого.

Например, если мой сценарий TestEric.sh, Я хотел бы перечислить количество экземпляров того сценария, в настоящее время работающего.

7
задан 11 April 2018 в 06:50

3 ответа

Проблема здесь - это ps значением по умолчанию только показывает основную команду в ее выводе, не целую командную строку включая аргументы.

Если Вы запускаете свой сценарий с bash TestEric.sh, основная команда bash. Если Вы выполняете его как TestEric.sh (возможно включая ее путь), основная команда будет этим и не ударом.


Можно легко использовать pgrep вместо ps перечислять процессы, фильтрованные по имени. Это имеет a -f флаг, который заставляет его соответствовать данному шаблону против целой командной строки вместо просто основной команды.

-a флаг заставляет его отобразить ту целую командную строку в своем выводе для отладки целей вместо просто PID. После того как Вы проверили, что это работает, Вы можете/должны, удаляют его снова в Вашем сценарии.

Попробуйте это:

pgrep -f -a TestEric.sh

Можно позже считать использование процессов wc путем подсчета pgrep выходные строки:

pgrep -f TestEric.sh | wc -l
9
ответ дан 23 November 2019 в 06:20

Вы могли попытаться работать ps u вместо этого. Из страниц справочника u опция соответствует display user-oriented format то, которое отобразит и оболочку, раньше запускало скрипт и название самого сценария.

2
ответ дан 23 November 2019 в 06:20

По-видимому, помогает, добавляю ли я !#/bin/bash в начале файла... Затем название сценария появляется в ps отчет.

1
ответ дан 23 November 2019 в 06:20

Другие вопросы по тегам:

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