我似乎无法杀死 -9 处于可中断睡眠 (S) 状态的进程:
[root@jupiter ~]# ps -elf | grep yum
4 S root 16790 1 0 75 0 - 73779 - Jan15 ? 00:00:04 /usr/bin/python /usr/bin/yum -y install python-pip
[root@jupiter ~]# kill -9 16790
[root@jupiter ~]# ps -elf | grep yum
4 S root 16790 1 0 75 0 - 73779 - Jan15 ? 00:00:04 /usr/bin/python /usr/bin/yum -y install python-pip
Run Code Online (Sandbox Code Playgroud)
这怎么可能?有没有办法在不重新启动的情况下终止进程?
BOUNTY:我真的对解释这种情况是如何发生的更感兴趣。
更新:这是 lsof 的输出:
[root@jupiter ~]# lsof -p 16790 命令 PID 用户 FD 类型 设备大小/关闭节点名称 …
所以我坐在那里想知道如果我输入以下内容会发生什么:
sudo killall -u root
Run Code Online (Sandbox Code Playgroud)
...aaaaaand 现在操作系统将无法加载。如何在不重新安装的情况下解决此问题?
我并不担心这个或任何事情,它是一个测试盒,我知道这会使系统崩溃,但我没有意识到它会阻止它启动操作系统。如果有一天它被恶意完成,知道如何解决这个问题会很好。
编辑:我在尝试使用恢复模式后使用 fsck,不确定它是否有效。它说在从扫描中获取下一个 inode 时,它无法读取导致短读取的块。当我告诉它不要忽略错误时,它中止了 fsck。我点击“是”并强制重写的次数多得我数不过来。如果有任何进展或我收到有效的建议,将再次更新。
编辑:在忽略并重写大量错误后,第二遍开始。似乎做了更多相同的事情(检查 inode/sectors) - 这么多错误。
编辑:好的,所以在恢复模式下的 fsck(我在建议单用户模式之前使用过这个,但看起来它们是一样的东西)在基本上向“y”按钮发送垃圾邮件一段时间后解决了这个问题。谢谢你们!
编辑/更新:这也搞砸了我的包管理器,它说尝试失败的“sudo apt-get updater”。随着我解决这个问题的更多信息。
更新:嗯,我不知道如何获得包管理器。任何时候我尝试通过 GUI 或 apt-get 重新安装它都会失败。我得到:
无法初始化包信息 初始化包信息时出现无法解决的问题。请针对“update-manager”包报告此错误,并包含以下错误消息:
'E:Could not open file /var/lib/dpkg/status - open (2 No such file or directory), E:无法解析或打开包列表或状态文件。'
我迷路了,考虑放弃并抹去整个事情。我真的很想知道如何在不重新启动的情况下解决这个问题。
更新:尝试使用 dpkg 来解决此问题,但也没有用。Firefox 是我执行此操作时正在运行的进程,它也不会加载,但其他程序会加载(尝试运行 GIMP,它运行良好)。
我知道它$!存储了最后一个(后台)进程的 pid,但这是什么%1意思?我经常看到它kill和它一起使用,它的效果与kill $!. 有人可以给我一个提示吗?(这么小的术语很难用谷歌搜索:-/)
如何杀死不想杀死的进程?尝试终止进程时,我收到拒绝访问消息。我知道这可能是由于设备驱动程序在等待,可能这就是原因。
但我的问题是如何杀死进程?我是管理员,我不希望进程等待任何设备驱动程序或其他东西。我想让它死。
如何做到这一点?
以管理员身份运行任务管理器、procexp 和 procexp64 没有帮助。
如何使用命令或键盘快捷键杀死当前活动的窗口?
Alt+F4 关闭一个窗口,但首先它会等待程序响应。根据应用程序,这可能需要几分钟时间。我对没有等待期的解决方案特别感兴趣——即立即生效的解决方案。
我想立即用快捷方式杀死当前聚焦的窗口。
我遇到了进程挂起并且绝对拒绝死亡的问题。我已经尝试使用任务管理器和pskill控制台(具有管理员权限),虽然程序会声明它已经终止了进程,但它仍然存在,我无法打开第二个进程。这发生在 Opera 和 Truecrypt 上。
操作系统为 Windows 7 Professional(64 位)。重新启动计算机会清除挂起的进程。
我还尝试使用名为Ultimate Process Detail & Killer 的程序,但也没有帮助。
在我考虑重新发明轮子并自己动手之前,有没有人知道允许我杀死进程、按进程名称和进程所有者过滤的应用程序/实用程序?或者这可以通过powershell完成吗?(遗憾的是,我的 powershell-fu 缺乏)。
我都看过pskill和taskkill。虽然pskill允许按进程名称终止,但它不允许我按进程所有者进一步过滤。我还通过 wmic ( wmic process)查看了 WMI ,但是 WMI 接口不返回进程所有者(至少从我所知),所以也不能使用它。
基本原理
我在 Windows 上进行了大量开发。其中一些涉及处理组件服务 (COM+)。COM+ 有一个通用的主机进程——dllhost.exe——它用于自定义(即我开发的东西)元素和系统进程。我可以通过他们经营的所有者来区分他们。因此,例如,我想杀死我拥有的所有 dllhost.exe 进程,但忽略 SYSTEM 拥有的进程。
这将节省我定期进入任务管理器并识别和手动杀死每个人:-)
我会多次重复这个过程。我必须在 Windows 机器上杀死一个进程,我只知道它的端口。通常步骤如下: 通过查看端口(例如端口 8084)找到 PID 列出在端口上运行的进程
netstat -a -o -n
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令终止该端口上的进程
taskkill /F /PID <pid>
Run Code Online (Sandbox Code Playgroud)
有没有像管道或类似的东西,我可以在 Windows 操作系统上使用它在一行中运行这个命令!?
我想要一个活泼的基于 GUI(我坚持,因为人们仍然想提出基于控制台的)应用程序,它可以在 Linux 上向我展示正在运行的进程并允许我杀死它们。它不需要像 Window 的 Process Explorer 甚至 Win7 的 Task Manager 那样强大。有什么轻量级和功能性的东西吗?
我很感激推荐。
我需要杀死一些 Python 进程。我可以使用 获取进程号列表pgrep python,但是如何一次将它们全部杀死而不是一个一个地杀死?
我正在寻找类似的东西:
pgrep python | kill process_nos
Run Code Online (Sandbox Code Playgroud)