Зачем использовать ps -ef проверять процесс каждый раз, когда pid изменится?

Я использую ps -ef для проверки процесса, но каждый раз, когда pid изменится, вы увидите ниже, 1726 -> 1728 -> …

 aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira 501 1726 527 0 10:14上午 ttys000 0:00.00 grep safira aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira 501 1728 527 0 10:14上午 ttys000 0:00.00 grep safira aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira 501 2298 527 0 11:18上午 ttys000 0:00.00 grep safira aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira 501 2301 527 0 11:18上午 ttys000 0:00.00 grep safira 

Каждый раз, когда вы запускаете это в Терминале два, создаются новые процессы для ps и grep , выполняются для выполнения их работы, а затем успешно завершаются. Таким образом, каждый вызов получает новые PID.


Чтобы правильно исключить процесс grep search_string из grep'ing для search_string в результате использования ps, используйте:

 ps -ef | grep -v grep | grep search_string 

или

 ps -ef | grep [s]earch_string 

например ps -ef | grep -v grep | grep safira ps -ef | grep -v grep | grep safira ps -ef | grep -v grep | grep safira или ps -ef | grep [s]afira ps -ef | grep [s]afira

ps ... | grep ... ps ... | grep ... трубопровод часто может быть заменен на pgrep (или pkill ), которые в отличие от трубопровода достаточно умны, чтобы не совпадать:

 pgrep safira 
  • альтернатива TotalTerminal, которая работает с El Capitan
  • Есть ли способ изменить цвет шрифта текущего пути в терминале?
  • "Mkdir: /Users/me/.bash_sessions: операция не разрешена"
  • Правильный синтаксис для изменения скриншотов по умолчанию и сохранения местоположения Screencapture?
  • jDownloader-подобный инструмент командной строки или облегченное приложение GUI?
  • Почему «история -а» не работает?
  • Эквивалент команды «service» Linux в Mac OS для остановки запущенного процесса / службы
  • Как остановить запуск терминала с минимального уровня в доке?
  • Как перемещать вкладки в терминале
  • Выключение без и закрытия всех окон с терминала
  • Ошибка при попытке открыть новый Emacs.app после обновления до Yosemite
  • Давайте будем гением компьютера.