标签: process-management

我什么时候不应该杀死 -9 进程?

我总是很犹豫要不要跑kill -9,但我看到其他管理员几乎是例行公事。

我认为可能有一个明智的中间立场,所以:

  1. 何时以及为何应kill -9使用?什么时候,为什么不呢?
  2. 在做之前应该尝试什么?
  3. 什么样的调试“挂起”进程会导致进一步的问题?

linux command-line kill process-management

419
推荐指数
9
解决办法
19万
查看次数

Linux 如何“杀死”一个进程?

我常常感到困惑的是,尽管我从事计算机专业工作几十年,Linux 工作十年,但我实际上将操作系统的大部分功能视为黑匣子,与魔术没什么两样。

今天我想到了这个kill命令,虽然我每天多次使用它(无论是“正常”还是-9风格),我必须承认我完全不知道它在幕后是如何工作的。

在我看来,如果一个正在运行的进程被“挂起”,我会调用kill它的 PID,然后它突然不再运行了。魔法!

那里到底发生了什么?联机帮助页谈论“信号”,但这肯定只是一种抽象。发送kill -9到进程不需要进程的合作(如处理信号),它只是将其杀死。

  • Linux 如何阻止进程继续占用 CPU 时间?
  • 是否从调度中删除?
  • 它是否断开进程与其打开的文件句柄的连接?
  • 进程的虚拟内存是如何释放的?
  • 内存中是否有一个全局表之类的东西,Linux 保留对进程占用的所有资源的引用,当我“杀死”一个进程时,Linux 只是简单地遍历该表并一个一个地释放资源?

我真的很想知道这一切!

process kill process-management

94
推荐指数
1
解决办法
2万
查看次数

pkill 和 killall 有什么区别?

我知道它pkillkillall. 我的问题是,有什么区别:

pkill [signal] name
Run Code Online (Sandbox Code Playgroud)

killall [signal] name
Run Code Online (Sandbox Code Playgroud)

我读过它killall更有效并杀死与name程序匹配的所有进程和子进程(以及递归)。 pkill也不这样做吗?

linux process kill process-management

73
推荐指数
3
解决办法
3万
查看次数

通过单击获取窗口的 PID

是否有任何程序包可以通过单击来显示窗口的 PID?

xorg process-management

63
推荐指数
2
解决办法
2万
查看次数

这个过程 STAT 表示什么?

在此处输入图片说明

如果您查看STAT column上图,您会看到Ss S S< SN and R+ 这表示什么?Process states. 如果是,那么意义'Ss S< SN and R+'何在?

process ps process-management stat

59
推荐指数
1
解决办法
10万
查看次数

为什么默认的进程创建机制是fork?

用于进程创建的 UNIX 系统调用 fork() 通过复制父进程来创建子进程。我的理解是,这之后几乎总是调用 exec() 来替换子进程的内存空间(包括文本段)。在 fork() 中复制父级的内存空间对我来说总是很浪费(尽管我意识到可以通过使内存段在写时复制从而只复制指针来最小化浪费)。无论如何,有谁知道为什么流程创建需要这种复制方法?

process process-management fork

51
推荐指数
2
解决办法
6227
查看次数

什么是“子收割者”过程?

一些答案中使用了“subreaper”这个词。搜索谷歌也会出现“刚刚使用”这个词的条目。

我如何理解什么是“子收割者”?

process process-management linux-kernel

46
推荐指数
1
解决办法
8974
查看次数

程序在发送 SIGKILL 信号时会做什么?

当我过去killall -9 name杀死一个程序时,状态变成僵尸。几分钟后,它真的停止了。那么,在那几分钟里发生了什么?

kill signals process-management sigkill

44
推荐指数
1
解决办法
1万
查看次数

是否有类似 top 的命令显示正在运行的进程的网络带宽和文件访问

例如,我们希望看到:

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W
Run Code Online (Sandbox Code Playgroud)

这可能吗?nethogs 只显示 TX/RX,而 lsof 只显示文件访问。

我目前正在做一个像这样的两步过程:

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

networking process process-management bandwidth files

41
推荐指数
4
解决办法
4万
查看次数

获取chrome的总内存使用量

由于 google chrome/chromium 产生多个进程,因此很难看到这些进程总共使用了多少内存。

有没有一种简单的方法可以查看一系列连接的进程使用了​​多少总内存?

memory chrome process-management multithreading

40
推荐指数
1
解决办法
2万
查看次数