killall.1

KILLALL(1)

KILLALL(1)

FreeBSD General Commands Manual

KILLALL(1)

killall

按名称杀死进程

killall [-delmsvz] [-help] [-I] [-j jail] [-u user] [-t tty] [-c procname] [-SIGNAL] [procname ...]

killall 实用程序会杀死按名称选择的进程,而不是像 kill(1) 那样按 PID 选择。 默认情况下,它将向所有具有与名称 procname 匹配的 killall 调用者相同的真实 UID 的进程发送 TERM 信号。 超级用户可以杀死任何进程。

选项如下:

-d

更详细地说明将要做什么,但不要发送任何信号。 显示用户进程总数和真实用户 ID。 将打印将发送信号的进程列表,或显示未找到匹配进程的消息。

-e

使用有效用户 ID 而不是(默认)真实用户 ID 来匹配使用 -u 选项指定的进程。

-help

提供有关命令使用的帮助并退出。

-I

在尝试向每个进程发出信号之前请求确认。

-l

列出可用信号的名称并退出,就像在 kill(1) 中一样。

-m

将参数 procname 作为(区分大小写的)正则表达式与找到的进程名称进行匹配。 警告!这是危险的,单个点将匹配在调用者的真实 UID 下运行的任何进程。

-v

详细说明将要做什么。

-s

-v 相同,但不发送任何信号。

-SIGNAL

发送不同的信号而不是默认的 TERM. 信号可以指定为名称(带或不带前导 “SIG” )或数字。

-j jail

杀死指定 jail 中的进程。

-u user

将可能匹配的进程限制为属于指定 user 的进程。

-t tty

将可能匹配的进程限制为在指定 tty 上运行的进程。

-c procname

将可能匹配的进程限制为与指定的 procname 匹配的进程。

-q

如果没有匹配的进程,则禁止显示错误消息。

-z

不要跳过僵尸。 如果存在与指定模式匹配的僵尸进程,除了打印一些错误消息外,这应该没有任何效果。

kill(1) 已经支持向具有给定 UID 的所有进程发送信号。 所以使用 kill(1) 来完成这项工作(例如 “kill -TERM -1” 或作为 root “echo kill -TERM -1 | su -m <user>)

killall 的传统 UNIX 行为相比, killall 的这个 FreeBSD 实现具有完全不同的语义。 后者将杀死当前用户能够杀死的所有进程,并且仅供系统关闭进程使用。

如果某些进程已被发现并成功发出信号,则 killall 实用程序退出 0。 否则,将返回状态 1。

向所有 firefox 进程发送 SIGTERM :

killall firefox

SIGTERM 发送到属于 USER 的 firefox 进程:

killall -u ${USER} firefox

停止所有火狐进程:

killall -SIGSTOP firefox

恢复 firefox 进程:

killall -SIGCONT firefox

显示将对 Firefox 进程执行的操作,但实际上并不向它们发出信号:

killall -s firefox

SIGKILL 发送到在监狱 ID 282 内运行的 csh 进程:

killall -9 -j282 csh

SIGTERM 发送到与提供的模式匹配的所有进程(如 vim 和 vimdiff):

killall -m 'vim*'

仅当使用 -d 标志时才会打印诊断消息。

kill(1), pkill(1), sysctl(3), jail(8)

killall 命令出现在 FreeBSD 2.1 中。 它是在其他平台上可用的 killall 命令之后建模的。

killall 程序最初是用 Perl 编写的,由 Wolfram Schneider 贡献,本手册页由 Jörg Wunsch 编写。 当前版本的 killall 由 Peter Wemm 使用 sysctl(3) 用 C 语言重写。

June 27, 2020

FreeBSD 13.1-RELEASE

最后更新于

FreeBSD 中文社区