重击输出杀死用法

时间:2018-06-28 14:56:19

标签: bash amazon-web-services scripting

我有一个bash脚本,如下所示:

if [[ "$1" == "stop"  ]]; then

 echo "[$(date +'%d/%m/%Y %H:%M:%S:%s')]: Killing all active watchers" >> $LOG

 kill -9 $(ps -ef | grep "processname1" | grep -v "grep" | grep -v "$$" | awk 
 '{print $2}' | xargs)

 echo "[$(date +'%d/%m/%Y %H:%M:%S:%s')]: Killing all current processname2 
 processes" >> $LOG

 kill -9 $(ps -ef | grep "processname2" | grep -v "grep" | awk '{print $2}' | 
 xargs)

 exit 0

当我运行“ x服务停止”时,将输出以下内容:

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill 
-l [sigspec]
Killed

如何停止显示杀戮用法?它可以成功终止该进程,但是显示使用情况的事实导致AWS CodeDeploy失败。

谢谢!

1 个答案:

答案 0 :(得分:1)

Adam,请注意,这实际上只是带有格式的注释。不要将此作为您问题的真实答案。请重点关注对您的问题的建设性意见。

在我度过的青春期里,我编写了这个bash函数来消除ps -ef | grep ....的疯狂:

# ps-grep
psg() { 
    local -a patterns=()
    (( $# == 0 )) && set -- $USER
    for arg do
        patterns+=("-e" "[${arg:0:1}]${arg:1}")
    done
    ps -ef | grep "${patterns[@]}"
}

使用以下知识:模式 [p]rocessname字符串 [p]rocessname

不匹配