我想知道这个语句到底起什么作用,尤其是其awk
部分。
ps aux | grep 'sidekiq 5' | grep -v grep | awk '{ print $2; }' | xargs kill -${2:-'TERM'}
我知道整个管道都应该终止sidekiq
进程。
答案1
ps aux
列出所有进程。grep 'sidekiq 5'
仅显示列表中包含字符串“sidekiq 5”的行。grep -v grep
删除包含字符串“grep”的行。这样做是为了grep
过滤掉前一个管道阶段的进程。awk '{ print $2; }'
打印每行的第二个字段。此字段恰好是ps aux
输出中的进程 ID。xargs kill -${2:-'TERM'}
从选定的 sidekiq 进程中获取进程 ID,并将它们作为参数提供给kill
命令。信号为 $2,如果未定义 $2,则为 SIGTERM。