页面加载中,请稍候
来源:开源Linux发布时间:2022-09-23701浏览
询问 AI
我想干掉Liunx某个进程怎么搞?
如果进程在前台运行,你可以使用 Ctrl+C 终端快捷方式。但是,如果进程不可见(在后台运行),你可以使用专用命令杀死它。
终止进程是指在执行过程中停止进程。如果你知道进程ID(PID),则可以使用 kill 命令,如下所示:
>kill<signal><PID>
在上面的语法中,signal指的是要发送终止的终止信号,并且PID指的是进程的 ID。
还有一个 killall 命令,我将在本文中讨论kill 和 killall 命令。
当一个进程被操作系统或用户终止时,即进程没有自行完成,它会被发送一个终端信号。
以下是可用的终止信号:
信号数值描述SIGHUP1信号挂断:当控制它的终端关闭时发送到进程。SIGINT2信号中断:当用户终止进程时发送给进程的信号.(例如 Ctrl + X)SIGKILL9Signal Kill:立即退出进程的信号,不允许它保存当前状态。SIGTERM15信号终止:发送到信号以请求终止进程。该信号可以被进程忽略。但这是终止进程的首选方式,因为它可以在进程收到 SIGTERM 时释放资源。SIGSTOP19 (for x86, ARM and most others)常用的信号 9 和 15
你还需要了解要终止的进程的详细信息。使用 kill 命令,你必须提供进程的 ID(PID)。你可以从进程名称中获取 PID
>pidofexact_process_name
比如获取java进程的进程号
>pidofjava
80751032
该kill命令要求你知道要终止的进程的 ID,以及可选的终止信号。
要简单地终止命令,请使用以下语法:
kill[signal]<PID>
向 PID 发送终止信号是可选的,如果未提供任何信号,则kill默认发送 SIGTERM (15),以正常终止所述进程结束。
我启动了sleep 命令的后台进程(它给了我一个 PID)。我们使用kill命令杀死它。
杀死这个特定的实例sleep如下所示:
$sleep120
[1]125686
$kill125686
[1]+terminatedsleep120
如果我想使用终止信号,我可以使用数值或信号本身:
$sleep120
[1]125746
$kill-SIGKILL125746
[1]+killedsleep120
$sleep120
[1]125759
$kill-9125759
[1]+killedsleep120
如果 kill 命令没有指定信号,则默认使用 SIGTERM (15)。
如果不知道某个进程的PID是多少,或者该进程有多个子进程,又想一次性杀死子进程和父进程,可以使用killall命令。
killall[signal]<process-name>
与kill命令类似,指定终止信号是可选的。当没有指定终止信号时,killall将发送 SIGTERM (15) 以优雅地关闭所述进程。
为了演示killall的使用,我将杀死两个正在运行的 sleep 命令。
$sleep120
[1]112351
$sleep2000
[2]112362
$killallsleep
[1]-Terminatedsleep120
[2]+Terminatedsleep2000
此外,你可以使用该-e标志来查找进程名称的完全匹配。
命令的替代命令kill是pkill命令。它是pgrep和kill命令的组合。
killall杀死所有具有匹配名称的进程。另一方面,pkill使用模式匹配来匹配进程并杀死它们。
pkill[options]pattern
命令中可用的一些有用选项pkill如下:
-u: 特定所有者拥有的进程
-x: 完全匹配模式的进程
-signal: 指定终止信号(默认为 SIGTERM)
结束nginx进程
>pkillnginx
新闻来源:开源Linux,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-07-09

2026-06-24