Я пытаюсь определить количество процессов, которые выполняются с помощью следующей командной строки:
ps aux | grep -c 'Xvfb :1'
Когда процесс "fiji:1" не запущен, я иногда получаю значение 0, а иногда значение 1. Запуск команды grep иногда считается, а иногда нет.
Запуск командной строки ниже дает последовательно нулевые процессы:
ps aux | grep 'fiji :1' | grep -v grep
Подобно добавлению grep -v grep
, есть ли способ заставить "grep -c" подсчитать количество запущенных процессов минус команда grep?
ps aux | grep Xvfb
дает это:
60293 17250 0.0 0.1 45052 7016 pts/4 S Sep30 0:02 Xvfb :4 -screen 0 1600x1200x16
60293 17373 0.0 0.0 40704 2964 pts/0 S Sep30 0:02 Xvfb :5 -screen 0 800x600x16
60293 29695 0.0 0.1 42996 6112 pts/6 S 13:00 0:00 Xvfb :3 -screen 0 1600x1200x16
60293 31650 0.0 0.0 61160 756 pts/6 R+ 13:58 0:00 grep Xvfb
pgrep 'Xvfb :3' | wc -l
не совсем работает, потому что возвращает 0, когда на самом деле запущен 1 процесс.
pgrep 'Xvfb' | wc -l
возвращает 3, что правильно.
Я также попробовал pgrep 'Xvfb :3 -screen 0 1600x1200x16' | wc -l
и он неправильно вернул 0.
Похоже, pgrep
не нравится пробел в Xvfb :3
?