Bash函数可以杀死进程
发布时间:2020-12-15 21:55:09 所属栏目:安全 来源:网络整理
导读:我为这个函数创建了一个别名,以便在bash中杀死进程: 在我的.bashrc文件上 kill_process(){ # $1 being a parameter for the process name kill $(ps ax | grep "$1" | awk '{print $1}')}alias kill_process=kill_process 所以,假设我要杀死流星过程: 让我
我为这个函数创建了一个别名,以便在bash中杀死进程:
在我的.bashrc文件上 kill_process(){ # $1 being a parameter for the process name kill $(ps ax | grep "$1" | awk '{print $1}') } alias kill_process=kill_process 所以,假设我要杀死流星过程: 让我们看看所有的流星过程: ps aux | grep 'meteor' | awk '{print $2}' 21565 21602 21575 21546 使用别名调用kill_process函数 kill_process meteor bash: kill: (21612) - No such process 因此,kill_process函数有效地终止了流星进程,但它的kill命令查找不存在的pid.请注意,ps aux |未列出pid 21612 grep的.有什么想法来改进kill_process函数来避免这种情况吗? 解决方法
正如Swoogan在他的回答中所暗示的那样,按名称杀死进程的标准方法是使用killall.
至于你的kill_process函数,过滤ps的grep表达式将匹配自己的grep进程(你可以看到这个没有awk运行管道),但是当调用kill时,该进程不再运行.那是你看到的信息. 每次运行该命令时,grep都会再次使用新的PID运行:这是您在测试时无法在列表中找到它的原因. 你可以: >首先运行ps,将其传输到文件或变量,然后grep kill $(...) 2>/dev/null (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |