Linux初学者的killall命令(8个例子)

Linux初学者的killall命令(8个例子)

我们已经讨论了kill命令 ,如果你想在Linux中终止进程,你可以使用kill命令 。 但是,还有一个命令行实用程序可以用于相同的目的: killall 。 在本教程中,我们将使用一些易于理解的示例来讨论此命令的基础知识。

但在此之前,值得一提的是,本教程中包含的所有示例都已在Ubuntu 16.04 LTS上进行了测试。

Linux的killall命令

killall命令可以让你通过名称来终止进程。 以下是该工具的语法:

killall [OPTIONS] name

以下是手册页如何解释该工具:

killall sends a signal to all processes running any of the specified commands. If no signal name is specified, SIGTERM is sent. Signals can be specified either by name (e.g.  -HUP or -SIGHUP) or by number (e.g.  -1) or by option -s.

If  the command name is not regular expression (option -r) and contains a slash (/), processes executing that particular file will be  selected for killing, independent of their name.

killall returns a zero return code if at least one process has been killed for each listed command, or no commands were listed and at least one process matched the -u and -Z search criteria. killall returns non-zero otherwise.

A killall process never kills itself (but may kill other  killall  processes ).

下面的问答样例应该会让你更好地了解killall命令的工作原理。

Q1。 如何使用killall命令?

该工具的基本用法非常简单 - 您只需将流程的名称作为参数传递给killall即可。 例如,要杀死在我的系统上运行的gthumb进程,我用以下方式使用killall:

killall gthumb

请注意,如果您不知道进程的确切名称,则可以使用ps命令来获取此信息。

Q2。 killall是否区分大小写?

是的。 如果用户无法正确写入进程名称,则会引发错误“未找到进程”错误。 以下是一个例子:

但是,如果您愿意,可以使用-I命令行选项强制killall忽略大小写。

Q3。 在终止过程之前如何让killall问?

假设你希望killall命令在杀死一个进程之前询问用户权限,那么你可以使用-i命令行选项。 这将使killall操作互动。

例如:

Q4。 如何选择信号killall发送处理?

默认情况下,这是killall发送到进程的SIGTERM信号。 但是,您也可以发送其他信号。 您可以使用选项-s ,-- signal-SIGNAL来发送这些其他信号。

然而,为了这个工作,你需要知道killall命令可以发送什么信号。 这可以使用-l命令行选项。

killall -l

以下是我们系统上面提到的命令列表:

Q5。 如何防止killall抱怨如果指定的过程不存在?

如果名称传递给killall的进程没有运行(不存在),那么该工具会将其传递给用户输出。

但是,如果您不希望该工具生成此类输出,则可以使用-q命令行选项。

所以当使用-q时,你可以看到killall命令保持安静。

Q6。 如何杀死用户拥有的所有进程?

如果要求杀死特定用户拥有的所有进程,则可以使用killall提供的-u选项。 不用说,该选项要求您指定用户的用户名作为其输入。

killall -u [user-name]

例如:

killall -u himanshu

Q7。 如何根据时间杀死进程?

假设你想杀死所有已经运行超过5个小时的进程,那么你可以用下面的方法使用-o选项来完成这个任务:

killall -o 5h

当然,如果你不想杀死所有的进程,你可以指定进程名称。 同样的,如果你想杀死进程,比如说,不到4个小时,那么你可以使用-y命令行选项。

killall -y 4h

以下是手册页介绍这些选项的方式:

-o, --older-than
              Match only processes that are older (started  before)  the  time
              specified.   The  time is specified as a float then a unit.  The
              units are  s,m,h,d,w,M,y  for  seconds,  minutes,  hours,  days,
              weeks, Months and years respectively.

 -y, --younger-than
              Match  only  processes that are younger (started after) the time
              specified.  The time is specified as a float then a  unit.   The
              units  are  s,m,h,d,w,M,y  for  seconds,  minutes,  hours, days,
              weeks, Months and years respectively.

Q8。 如何确保killall只在进程死后返回?

在信号由killall传递给进程之后,如果你想要确保命令只在进程死后返回,那么你可以使用-w命令行选项来执行此操作,这会强制killall等待。

killall -w [process-name]

以下是手册页介绍此选项的方式:

-w, --wait
              Wait  for  all killed processes to die.  killall checks once per
              second if any of the  killed  processes  still  exist  and  only
              returns if none are left.  Note that killall may wait forever if
              the signal was ignored, had no effect, or if the  process  stays
              in zombie state.

结论

Killall可能不是新手的蛋糕,但也不是很复杂。 你需要练习它提供的命令行选项。 我们已经讨论了其中的大部分,所以本教程应该是一个很好的起点。 一旦你完成了这些,你可以阅读更多关于该命令的标题到其手册页

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏