2016-07-28 2 views
2

Я хочу получить PID процесса, а именно «cron» по командной строке. Я попробовал следующий скрипт.Как извлечь PID процесса по командной строке

ps ax|grep 'cron' 

, но я получаю часть таблицы,

1427 ?  Ss  0:00 /usr/sbin/cron -f 
24160 pts/5 S+  0:00 grep --color=auto cron 

Как извлечь идентификатор процесса из этого?

+2

Использование: 'pgrep cron' – sat

ответ

1

Как это, например:

ps -ef|grep 'cron'|grep -v grep|awk '{print $2}' 
+0

вот ярлык, чтобы исключить процесс grep:' ps -ef | awk '/ [c] ron/{print $ 2}' ' –

3

Просто используйте pidof, а использовать другие команды и применять действия после обработки на них.

$ pidof cron 
22434 

Для того, чтобы вернуть команду только один PID, имеющую отношение к процессу, используйте -s пометка

-s одиночный выстрел - это инструктирует программу возвращать только один идентификатор процесса.

1

Вы можете попробовать это;

ps -o pid,sess,cmd afx | egrep "(|/)cron(-f)?$" 

или

pstree -pas <cronPID> 
3

утилит pgrep будет возвращать идентификаторы процессов для запущенных процессов соответствия своего аргумента:

$ pgrep cron 
228 

Он также может быть использован для «Grep для» вещей в командной строке:

$ pgrep -f uerfale 
69749 
69752 

$ pgrep -l -f uerfale 
69749 slogin uerfale 
69752 slogin: /home/kk/.ssh/sockets/uerfale-9022-kk.sock [mux] m 

К убить процесс по имени, используйте pkill. Он работает так же, как pgrep, но будет посылать сигнал согласованным процессам вместо вывода идентификатора процесса.

Смежные вопросы