我正在gedit
从命令窗口运行以编辑 xml 文件。编辑文件后,我关闭了gedit
文本编辑器窗口。
但该gedit
进程仍在命令窗口中运行。所以我使用ctrl+强制停止了它z。
之后我想使用gedit
打开另一个文件。无论我尝试多久,gedit xxxx.xml
都gedit
没有反应。
有人能帮我解释一下为什么它没有响应吗?该如何处理?
答案1
查找 gedit 的 PID
有两种方法可以找到 PID gedit
:
打开终端,输入例如
ps -x
(您也可以使用top
,,htop
...)这里,我们可以看到我的
gedit
PID 是 16694(它在左边第一列)使用
pgrep
,你不必连接2个命令(ps
+grep
):pgrep gedit
此命令返回
gedit
强制关闭 gedit
使用命令kill -9 PID
,其中 PID 是你用 找到的数字ps -x
。在我的例子中,gedit
PID 是 16694,所以我必须输入kill -9 16694
您现在可以重新启动gedit
,无响应状态已完全消失。
注意:即使在使用或选项kill
打开的程序中命令仍然有效。&
nohup
NB-2:如果您正在运行某些应用程序,可能很难找到 PID,因此只需添加一个grep
命令即可找到它:
ps -x | grep gedit
答案2
Ctrl+Z表示暂停进程,因此进程继续运行,但看起来已冻结。它不会像Ctrl+那样被终止C。
处理终端中暂停的进程基本上有四种选择:
fg %<job>
继续在前台运行bg %<job>
让它继续在后台运行(这样你就可以发出进一步的命令)kill %<job>
正常终止该过程kill -9 %<job>
强制终止该进程(可能导致未保存的更改等)
<job>
将被替换为方括号中 shell 给出的作业号(1
如下例所示):
$ sleep 30
^Z
[1]+ Stopped sleep 30
$ kill %1
$ # (enter any command or just press Enter to refresh the shell)
[1]+ Terminated sleep 30
$