糖豆贴心提醒,本文阅读时间8分钟
Linux的命令行提供很多命令来杀死进程。 比如,你可以向“kill”命令传递一个PID来杀死进程;“pkill”命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死。 但是还有一个命令叫“killall”,默认情况下,它精确地匹配参数名,然后杀死匹配进程。 在这篇文章中,我们将讨论有关这个命令的实际应用。
killall命令可以用来给一个特定的进程发送一个信号。 这个信号默认情况下是SIGTERM,但也可以由killall命令使用参数来指定其它信号。 现在让我们通过一些实际的例子来看看这个命令的实际用法。 1. 基本示例 在这个例子中,我们将使用killall来杀死特定进程。 假如有两个开头字符相同的进程: 如何杀死“test_again”进程呢? 如你所见,killall命令终止了“test_again”进程。你可以通过ps命令来确认这个事实: 你可以观察到“test_again”没有被显示出来,因为它已经被杀死了。 2. 使用 -I 选项忽略大小写 默认情况下,killall命令是大小写敏感的。例如: 你可以看到,killall命令找不到叫做“TEST”的进程,但是“test”进程是确确实实的在运行的。 来让killall命令忽略大小写,可以使用-I选项(大写i)。例如: 你可以观察到,现在你成功的终止了“test”进程。 3. 使用 -i 选项交互式的终止进程 killall命令可以用来终止多个进程。 但是,如果你想要killall交互式地来终止进程,你可以使用-i选项。 这里是例子: 你可以看到,用这种方式,在同时终止多个进程时,用户可以控制是否终止某一个进程。 4. 使用 -q 选项关闭命令执行回显 有些时候,当killall找不到指定的进程时,它就会像下面这样输出错误信息。 但是,当你想要killall执行地安安静静的话,你就可以使用-q选项: 如你所见,-q选项被使用之后,killall命令的输出信息就被抑制了。 5. 使用-l选项列出所有支持的信号(signal) 如之前描述的一样,killall向进程发送信号。 你可以使用-s选项(后面跟一个信号名)来向一个进程发送特殊信号。 想要知道所有可以发送的信号,可以使用-l选项(小写L)来获取: killall支持上面的所有信号。 那这些信号都是干什么的? 你可以使用下面的命令来获取所有信号的说明: $ man 7 signal
killall命令的man说:假如进程的名字的长度小于等于15,默认情况下就会以完整名称匹配。 假设有两个名字很长的进程: 第一个进程的名字有15个字符。现在,让我们试着使用killall杀死这个进程: 如你所见,killall命令成功杀死了这个进程。 假如,两个进程的名字都超过15个字符,根据man,killall将把两个进程全部杀死。比如: 你可以观察到,两个进程的名字都超过15个字符。现在,当我使用killall试着杀死第二个进程时: 它只杀死了指定的进程,另一个则没有被杀死。 小编实验说用的killall命令版本信息如下:, 你能猜到这个问题出现的原因吗?欢迎在评论区留言哦~
今日值班:马哥教育三号女神学习顾问,暖心之处甜过初恋,脑洞大开会LOL神迹,可正经可搞笑,常陪伴0基础学员高效成长,深夜凌晨常有她与你的陪伴,据说她服务的学员是成长最快的。 内容沟通、职业成长和课程学习,可添加学习顾问: 【扫一扫即可撩】
马哥教育Linux精英班24期郑州校区抢座招募开始! 优惠两重享 福利一:前二十位报名者,立享学费直降四百元优惠【仅限前二十人】; 福利二:课程开班,报名即可送马哥精心编制实体书一本【每日限额】; 福利三:课程开班,赠送马哥教育云学堂智能化学习系统权限1个(价值1999元)和线下真实企业级服务器使用资格(价值2999元)【仅限本期】; |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|