在 Ubuntu Oneiric 版本上尝试安装 radiotray 几次后,另一位用户发现问题出在软件源设置上。现在我想再次执行 radio tray 的安装,apt-get
却无法等待适用于 radiotray 的软件包。甚至无法在系统监视器中结束该进程。
我已经注销了,但并没有杀死它,可能重启就可以了。还有其他方法可以apt-get
在等待软件包下载时停止运行吗?
答案1
首先,获取正在运行的 apt-get 的进程 ID (pid):
ps ax | grep apt-get
然后根据进程号 (pid) 终止该进程:
sudo kill -9 [pid]
或者使用htop
,它列出您的流程并使您能够发送各种信号。
答案2
精准击杀
通过系统监视器查找进程 ID,htop
通过 grepping 查找ps
,随便什么都可以(我更喜欢pgrep -l
,见下文)。假设这次是 4536。然后将其杀死:
kill -9 4536
散弹枪式方法
pkill -9 apt-get
这将杀死任何以某种方式匹配“apt-get”模式的进程。您不必查找进程号。这对应于以下进程:
pgrep -l apt-get
该-l
选项将输出从仅进程编号更改为编号 + 名称。这很好,因为您可以在开始之前自行检查。也许您在运行时pkill -9 nuke
不小心杀死了该进程the-only-thing-preventing-nukelear-world-war
。
-9 是什么鬼?
通常情况下,杀死类似这样的程序kill
,pkill
让你处于达斯·维达与欧比旺战斗的位置。维达想要杀死本,本承认维达的愿望,本在任务完成后优雅地接受死亡。这与使用该选项相同-15
。
但有时进程并不想死。或者它们很乐意死掉,只要它们完成这件小事就行。但你需要它们现在就死掉,而不是等它们方便的时候。所以你使用这个-9
选项。
为什么它一直挂着?
可能是其他进程在干扰。可能是 update、synaptic、apt 或其他类似的进程。逐个终止所有这些进程,每次终止后重试 apt-get 命令。最坏的情况是,您终止了一个重要进程,然后必须重新启动。如果您正坐在沙发上使用 Ubuntu 笔记本电脑,情况还不算太糟,但如果您远程连接到全国各地的服务器,情况就糟了。
也许您更改了更新源,但 apt-get 尚未收到备忘录。运行
sudo apt-get update
。但首先确保没有任何干扰进程。
我没有权限杀死任何东西:|
如果您不拥有该系统,那就太难了。但是如果您拥有该系统,请sudo
在每个命令前使用,如下所示:sudo pkill -9 process-i-hate
。我故意没有为您添加 sudos,因为您不应该不考虑二进制受害者就杀死它。
来源
man kill
man grep
man pkill
man pgrep
man ps