Найти все процессы, которые запускаются в конкретном рабочем каталоге - PullRequest
0 голосов
/ 09 января 2019

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

  1. Используйте ps для отображения всех процессов
  2. Используйте pwdx для списка выше, чтобы получить список рабочих каталогов
  3. Проверьте результат списка рабочих каталогов, затем сравните с конкретным рабочим каталогом.

Но я думаю, что это очень неуклюже, есть ли лучшее решение?

1 Ответ

0 голосов
/ 09 января 2019

Реализация базовой логики в Python, вызываемой из функции оболочки (таким образом, требуется только один процесс против раскрутки нескольких отдельных инструментов):

pids_for_dir() {
  python - "$@" <<'EOF'
import sys, os.path, glob
target = os.path.abspath(sys.argv[1])
for name in glob.glob("/proc/*/cwd"):
  if os.path.abspath(name) == target:
    print(name.split('/')[-2])
EOF
}

... вызывается из вашей оболочки как:

pids_for_dir /tmp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...