выполнение команды (неожиданное поведение) - PullRequest
0 голосов
/ 04 апреля 2011

ps -ef | grep "someprocess" выходные строки содержат:

.........................someprocess
.........................ps -ef | grep "someprocess" 

Может кто-нибудь объяснить, как это выполняется ??

Если я проверяю, запущен процесс или нет, он всегда будеткак запущенный, так как ps -ef | grep "someprocess" всегда будет там. Конечно, я знаю, что могу сделать ps -ef | grep "someprocess" | grep -v 'grep'

Но я хочу знать процесс выполнения вышеизложенного, чтобы быть понятным.почему я получаю строку, которую я только что выполнил (ps -ef | grep "someprocess ") в поисках процесса?

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Или используйте

pgrep -fl somepattern

, который не будет отображать процесс pgrep по умолчанию

Аналогично, pkill не будет убивать себя:)

1 голос
/ 04 апреля 2011

Из этого блога :

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

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