【发布时间】:2017-11-07 15:56:27
【问题描述】:
我有一个脚本试图按名称停止某个进程(但我需要指定一个不能被杀死的特定字符串,即“notThisProcess”),然后在 20 秒后杀死它,如果它还没有到来优雅地向下,即:
#!/bin/ksh
bname=BTEST
bserver=BSERVER
PROCESS_ID=`ps auxww | awk '/PROCESS_NAME_ALPHA/ && !/awk/ && !/notThisProcess/ {print $2}'`
/apps/customapp/stopcommand -a $bname -processName PROCESS_NAME_ALPHA -serverName $bserver
sleep 20
kill -4 $PROCESS_ID
PROCESS_ID2=`ps auxww | awk '/PROCESS_NAME_BETA/ && !/awk/ && !/notThisProcess/ {print $2}'`
/apps/customapp/stopcommand -a $bname -processName PROCESS_NAME_BETA -serverName $bserver
sleep 20
kill -4 $PROCESS_ID2
#etc..
随着我的进程列表刚刚增加,我试图将这些步骤放入一个函数中,但我不知道如何将进程名称传递给 awk。即,这不起作用:
#!/bin/ksh
bname=BTEST
bserver=BSERVER
cycleProcess()
{
PROCESS_ID=`ps auxww | awk '/$1/ && !/awk/ && !/notThisProcess/ {print $2}'`
/apps/customapp/stopcommand -a $bname -processName PROCESS_NAME_ALPHA -serverName $bserver
sleep 20
kill -4 $PROCESS_ID
}
cycleProcess PROCESS_NAME_ALPHA
cycleProcess PROCESS_NAME_BETA
exit
我已经看到通过 -v 多次引用分配,但尽管多次尝试我都没有成功。有什么建议吗?
【问题讨论】:
标签: function variables awk parameter-passing aix