Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I'm using nano inside a MATLAB session that is running inside a screen (-x) terminal. I accidentally hit Ctrl-Z and it immediately leaves nano, prints "Use "fg" to return to nano", but does not show a command prompt. Whatever I type appears on the screen but nothing responds. If I hit Ctrl-Z, ^Z just prints to the screen. Any ideas? Using 12.04.

share|improve this question
    
You should have a prompt after hitting ctrl-z. I have... it seems that this is not happening in your case. How exactly do you run nano in the terminal? –  Rmano May 16 at 20:07
    
I just realized I'm not really using 12.04. I am in fact running nano from inside a MATLAB session, which is (obviously) the problem (sorry about neglecting to mention that; I'd forgotten I was in MATLAB). Calling jobs in another screen does not list any jobs to pull up. –  user282315 May 16 at 22:35

3 Answers 3

up vote 1 down vote accepted

In the comments the author says that he or she is running the nano command from Matlab, and that there is no prompt whatsoever after suspending it with CTRL-Z. This is probably a bug in Matlab(1) which should not allow a CTRL-Z arrive to nano if it can't cope with it...

The problem is that the shell command fg (and bg, and jobs) works only with direct children of the shell. But you can continue a stopped process from another shell, although this will not guarantee that the status of the screen is correctly managed:

  1. in another terminal window, find the nano process:

    % 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. Notice that it is stopped (state T)

  3. Continue it with

    kill -CONT 10600 
    

...and hope it works (can mess up the terminal greatly). You can also trying a

killall -CONT nano 

that way the CONT signal is sent to all the "nano" processes (shouldn't be a problem though).


Footnotes:

(1) I tried with octave: EDITOR=nano octave and then edit file in octave. Pressing CTRL-Z messes the things up quite well... so maybe it's not Matlab but a strange interaction on who receive and manage the TSTP signal.

share|improve this answer
    
Awesome, that did it. This issue had been bothering me for a while! Logging a bug with TheMathWorks. Thanks! –  user282315 May 16 at 23:08
1  
Alas, new account, no reputation to upvote (yet). –  user282315 May 16 at 23:11

If it's the only backgrounded process entering % followed by Return should return you to nano.

That said, fg should always work. Even when you have more than one job, it should bounce you back to the newest one.

share|improve this answer

List your jobs

jobs

Bring a job to the foreground

fg 1

change the "1" to the job number corresponding to nano.

See also http://unix.stackexchange.com/questions/30228/basic-job-control-stop-a-job-add-a-job-onto-the-stack-and-fg

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.