你是怎么在 Linux 干掉进程的?

发表于:2022-9-20 09:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:运维派

  我想干掉Liunx某个进程怎么搞?
  如果进程在前台运行,你可以使用 Ctrl+C 终端快捷方式。但是,如果进程不可见(在后台运行),你可以使用专用命令杀死它。
  终止进程是指在执行过程中停止进程。如果你知道进程ID(PID),则可以使用 kill 命令,如下所示:
  > kill <signal> <PID>
  在上面的语法中,signal指的是要发送终止的终止信号,并且PID指的是进程的 ID。
  还有一个 killall 命令,我将在本文中讨论kill 和 killall 命令。
  Linux 中的终止信号
  当一个进程被操作系统或用户终止时,即进程没有自行完成,它会被发送一个终端信号。
  以下是可用的终止信号:
  常用的信号 9 和 15
  获取进程的PID
  你还需要了解要终止的进程的详细信息。使用 kill 命令,你必须提供进程的 ID(PID)。你可以从进程名称中获取 PID
  > pidof exact_process_name
  比如获取java进程的进程号
  > pidof java
  8075 1032
  在 Linux 命令行中终止进程
  使用 kill 命令
  该kill命令要求你知道要终止的进程的 ID,以及可选的终止信号。
  要简单地终止命令,请使用以下语法:
  kill [signal] <PID>
  向 PID 发送终止信号是可选的,如果未提供任何信号,则kill默认发送 SIGTERM ( 15),以正常终止所述进程结束。
  我启动了sleep 命令的后台进程(它给了我一个 PID)。我们使用kill命令杀死它。
  杀死这个特定的实例sleep如下所示:
  $  sleep 120 &
  [1] 125686
  $ kill 125686
  [1]  + terminated  sleep 120
  如果我想使用终止信号,我可以使用数值或信号本身:
  $ sleep 120 &
  [1] 125746
  $ kill -SIGKILL 125746
  [1]  + killed     sleep 120
  $ sleep 120 &
  [1] 125759
  $ kill -9 125759
  [1]  + killed     sleep 120
  如果 kill 命令没有指定信号,则默认使用 SIGTERM (15)。
  使用 killall 命令
  如果不知道某个进程的PID是多少,或者该进程有多个子进程,又想一次性杀死子进程和父进程,可以使用killall命令。
  killall [signal] <process-name>
  与kill命令类似,指定终止信号是可选的。当没有指定终止信号时,killall将发送 SIGTERM ( 15) 以优雅地关闭所述进程。
  为了演示killall的使用,我将杀死两个正在运行的 sleep 命令。
  $ sleep 120 &
  [1] 112351
  $ sleep 2000 &
  [2] 112362
  $ killall sleep
  [1]-  Terminated              sleep 120
  [2]+  Terminated              sleep 2000
  此外,你可以使用该-e标志来查找进程名称的完全匹配。
  使用 pkill 命令
  命令的替代命令kill是pkill命令。它是pgrep和kill命令的组合。
  killall杀死所有具有匹配名称的进程。另一方面,pkill使用模式匹配来匹配进程并杀死它们。
  pkill [options] pattern
  命令中可用的一些有用选项pkill如下:
  -u: 特定所有者拥有的进程
  -x: 完全匹配模式的进程
  -signal: 指定终止信号(默认为 SIGTERM)
  结束nginx进程
  > pkill nginx
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号