qq_25096021 2015-11-05 09:20 采纳率: 0%
浏览 1420

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}')
    就不会出错,一般执行完毕后什么都不显示,但进程会杀掉
这是怎么回事??
  • 写回答

1条回答 默认 最新

  • 诸相非相 2015-11-05 11:00
    关注
     PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | awk '{print $2}')
    

    改成
    PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | grep -v 'a.sh' | awk '{print $2}')
    试试(a.sh换成你实际执行的脚本名字)

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题