开发者社区> 问答> 正文

linux shell脚本问题,急求

#!/bin/bash
        SERNAME=$1

  kill_process() {

  PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | awk '{print $2}')
 echo $PID
 kill -9 $PID
 sleep 2
 }

 kill_process
这上边的脚本命名为a.sh,我在执行时是  a.sh server1,但会出错,不是报错,是杀错进程,一般显示:
    1234 1234
    killed
如果不用参数执行,直接 PID=$(ps -ef | grep server1 | grep -v 'grep' | awk '{print $2}')
就不会出错,一般执行完毕后什么都不显示,但进程会杀掉

这是怎么回事??

展开
收起
杨冬芳 2016-07-14 11:57:09 2334 0
1 条回答
写回答
取消 提交回答
  • 你直接执行
    PID=$(ps -ef | grep server1 | grep -v 'grep' | awk '{print $2}') 的时候,其实是给PID赋值,并不会杀掉进程

    你直接执行完这句后,可以试一下 echo $PID看看赋值成功了没

    2019-07-17 19:56:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载