如果我没有shell提示,在按Ctrl-Z后如何返回nano(在Matlab会话中)


31

我在屏幕(-x)终端内运行的MATLAB会话中使用了nano。我无意中按下了Ctrl-Z,它立即离开了nano,打印出“使用“ fg”返回nano“,但没有显示命令提示符。我键入的任何内容都会出现在屏幕上,但没有任何反应。如果我按Ctrl-Z,^ Z只会打印到屏幕上。有任何想法吗?使用12.04。


按下ctrl-z后,您应该有一个提示。我有...看来您的情况没有发生。您如何nano在终端上运行?
Rmano 2014年

我只是意识到我并没有真正使用12.04。我实际上是在nanoMATLAB会话内部运行的,(显然)是问题所在(很抱歉忽略了这一点;我忘记了我在MATLAB中)。jobs在另一个屏幕中调用不会列出要拉起的任何作业。
user282315

Answers:


11

在注释中,作者说他或她正在nano从Matlab 运行命令,并且使用CTRL-Z挂起命令后没有任何提示。这可能是Matlab(1)中的错误,如果它不能解决问题,它应该不允许CTRL-Z到达nano。

问题在于shell命令fg(以及bg,和jobs)仅适用于shell的直接子级。但是您可以从另一个外壳程序继续停止的进程,尽管这不能保证正确管理屏幕的状态:

  1. 在另一个终端窗口中,找到nano过程:

    % ps ugx | grep nano
    romano   10600  0.0  0.0  20784  1628 pts/11   T    16:52   0:00 nano prova
    romano   10653  0.0  0.0  18256   900 pts/11   S+   16:53   0:00 grep nano
    
  2. 请注意,它已停止(状态T

  3. 继续

    kill -CONT 10600 
    

……并希望它能正常工作(可能会严重干扰终端)。您也可以尝试

killall -CONT nano 

通过这种方式,CONT信号被发送到所有“纳米”进程(尽管应该没问题)。


脚注:

(1)我尝试使用octaveEDITOR=nano octave然后edit file以八度为单位。按下CTRL-Z会把事情搞得井井有条...所以这可能不是Matlab,而是关于谁接收和管理TSTP信号的奇怪交互。


太棒了,做到了。这个问题困扰了我一段时间!使用TheMathWorks记录错误。谢谢!
user282315

1
las,新帐户,尚无信誉(尚未)。
user282315 2014年

54

如果这是唯一的后台进程%Return请先输入,然后再返回nano。

也就是说,fg应该始终有效。即使您有一份以上的工作,它也应该使您跳回最新的一份工作。


5
imo,这是真正的答案,它会执行op要求的操作,然后重新打开关闭的(ctrl + z)Nano窗口。
DonSeba

这里很酷的技巧。
pietrovismara

这也对我有帮助。
Arefe

这应该是正确的答案。
user2180794 '18

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.