Использование awk для захвата первой строки многострочного вывода? - PullRequest
0 голосов
/ 11 июня 2011

У меня есть этот вывод, который представляет собой PID всех процессов, работающих с grep для fcgi:

# ps ax | grep fcgi | cut -f1 -d' '
21065
21066
21067
21068
21069
21070
24801

Я хочу вырезать самое первое число (то есть 21065), чтобы я мог передать егофункция kill для уничтожения родительского процесса (родительский процесс возвращается в качестве первого PID).

Есть идеи, как это сделать?

Ответы [ 3 ]

5 голосов
/ 11 июня 2011

Не используйте ps ax | grep..., чтобы убить процесс, если вы можете избежать этого.Смотрите здесь

Вместо этого используйте pidof

3 голосов
/ 11 июня 2011

Использование:

чтобы получить номер пида

PARENT_PID=`ps ax | grep fcgi | cut -f1 -d' ' | head -1`

чтобы напрямую убить:

kill `ps ax | grep fcgi | cut -f1 -d' ' | head -1`
0 голосов
/ 11 июня 2011

Нет необходимости прыгать через все обручи бега ps, grep, cut, head и kill самостоятельно. Вот для чего pkill.

pkill fcgi

Также см. pgrep для дальнейшего использования.

...