linux 终端打开gedit,gedit命令运行时我无法使用终端
问题描述我最近安装了12.04。当我尝试使用gedit编辑文件时,在关闭编辑文件或必须打开新终端之前,我无法使用终端。但我认为11.04我没有这个问题,但是我不确定。无论如何要避免这种情况并在编辑文件时使用相同的终端。最佳解决方案简答在反应迟钝的终端:点击Ctrl + Z。输入bg并输入。输入disown并输入。答案很长在无响应的终端,点击Ctrl + Z,这将”pause”进程(或”job”)并
问题描述
我最近安装了12.04。当我尝试使用gedit编辑文件时,在关闭编辑文件或必须打开新终端之前,我无法使用终端。但我认为11.04我没有这个问题,但是我不确定。无论如何要避免这种情况并在编辑文件时使用相同的终端。
最佳解决方案
简答
在反应迟钝的终端:
点击Ctrl + Z。
输入bg并输入。
输入disown并输入。
答案很长
在无响应的终端,点击Ctrl + Z,这将”pause”进程(或”job”)并返回控制台控件给你。但是,您会注意到gedit没有响应,您无法使用它。
Extra: if you want to, you can execute the command jobs, you’ll notice that it’ll read Stopped for the gedit command, that’s why you can’t use it.
要使作业在后台成功运行(即再次使gedit响应),请执行命令bg(表示背景)。您现在可以使用gedit,同时可以自己提示。
Extra: now, if you execute jobs, you’ll notice that it’ll read Running.
你可以从一开始就克服所有这些。当您从终端启动gedit时,在命令的末尾添加一个&,所以像这样的gedit /path/to/file &。这将从头开始在后台启动gedit(您可能需要多次点击Enter才能恢复控制台控制)。
Extra: if you were following these extra notes, you might have noticed that the second time you did jobs, you could see that bash added a & to the end of the gedit command.
一旦你习惯了这个系统,你可能会注意到,如果你关闭终端,gedit也会终止,甚至没有确认对话框。要防止这种情况发生,请运行disown,它将从终端分离gedit进程,将其从jobs返回的列表中删除。
次佳解决方案
只需输入:
gedit &
这将立即将命令提示符返回给您。
第三种解决方案
您可以使用nohup来阻止GUI连接到终端:
nohup mupdf some.pdf &
这将允许您关闭正在启动的终端,而无需关闭程序。
您还应注意,nohup命令将使用您运行的命令的stdout和stderr创建一个文件。如果要防止这种情况,请在&之前添加&>/dev/null。
nohup mupdf some.pdf &>/dev/null &
第四种方案
您也可以使用disown命令。当您已经开始不再需要连接到终端的过程时,它尤其有用。
如果我没记错的基本程序是这样的:
$ > firefox #Oops
Ctrl + z #Suspend the process
$ > bg #Push the process to the background
$ > disown #Detach most recent process started or stopped
$ > exit #Terminal gone!
请注意,disown是bash特定的。
第五种方案
来自man gedit:
-b, --background Run gedit in the background.
因此,如果您使用-b选项运行gedit,它将在后台启动:
gedit -b [FILE-NAME]
此外,接下来您可以为gedit -b创建别名(请参阅here如何创建永久别名):
alias gedit='gedit -b'
从现在开始,将来您可以正常使用gedit [FILE-NAME],它将在后台启动。
第六种方案
只需输入:
gedit FILENAME & disown
在bash中使用&结束命令会在后台运行该命令。但是,该过程仍然附在终端上。
如果没有disown,如果关闭终端,gedit将关闭,甚至不会提示您保存已编辑的文件。 disown将后台进程与当前终端分离,因此如果您关闭终端,gedit将继续正常运行。事实证明我错了,这不是bash的情况,但zsh的情况就是如此。在做ctrl – z和bg之后,你仍然需要运行detach,即使是在bash中。
你可以找到更多关于内置s jobs,disown和&元字符在联机帮助页bash命令,特别是标有“作业控制”一节。
参考资料
更多推荐
所有评论(0)