Wie kann ich nach dem Drücken von Strg-Z zu Nano zurückkehren, wenn ich keine Shell-Eingabeaufforderung habe (in der Matlab-Sitzung)?


31

Ich verwende Nano in einer MATLAB-Sitzung, die in einem Bildschirmterminal (-x) ausgeführt wird. Ich habe versehentlich die Tastenkombination Strg-Z gedrückt und es wird sofort "nano" angezeigt. "Mit" fg "kehren Sie zu" nano "zurück, es wird jedoch keine Eingabeaufforderung angezeigt. Was auch immer ich tippe, es erscheint auf dem Bildschirm, aber es antwortet nichts. Wenn ich Strg-Z drücke, wird ^ Z nur auf dem Bildschirm gedruckt. Irgendwelche Ideen? Verwendung von 12.04.


Sie sollten eine Eingabeaufforderung erhalten, nachdem Sie Strg-Z gedrückt haben. Ich habe ... es scheint, dass dies in Ihrem Fall nicht der Fall ist. Wie genau laufen Sie nanoim Terminal?
Rmano

Ich habe gerade gemerkt, dass ich 12.04 nicht wirklich benutze. Tatsächlich renne ich nanoaus einer MATLAB-Sitzung heraus, was (offensichtlich) das Problem ist (es tut mir leid, dass ich es versäumt habe, das zu erwähnen; ich hatte vergessen, dass ich in MATLAB war). Beim Aufrufen eines jobsanderen Bildschirms werden keine Jobs aufgelistet, die abgerufen werden sollen.
user282315

Antworten:


11

In den Kommentaren sagt der Autor, dass er oder sie den nanoBefehl von Matlab aus ausführt und dass es nach dem Unterbrechen mit STRG-Z keinerlei Eingabeaufforderung gibt. Dies ist wahrscheinlich ein Fehler in Matlab (1), der es nicht zulassen sollte, dass ein STRG-Z in den Nano gelangt, wenn es nicht damit fertig wird ...

Das Problem ist, dass der Shell-Befehl fg(und bg, und jobs) nur mit direkten untergeordneten Elementen der Shell funktioniert. Sie können jedoch einen gestoppten Prozess von einer anderen Shell aus fortsetzen, obwohl dies nicht garantiert, dass der Status des Bildschirms korrekt verwaltet wird:

  1. Suchen Sie in einem anderen Terminalfenster den nanoProzess:

    % 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. Beachten Sie, dass es gestoppt ist (Zustand T)

  3. Weiter geht es mit

    kill -CONT 10600 
    

... und hoffe es funktioniert (kann das Terminal stark durcheinander bringen). Sie können auch versuchen, eine

killall -CONT nano 

auf diese Weise wird das CONTSignal an alle "Nano" -Prozesse gesendet (sollte aber kein Problem sein).


Fußnoten:

(1) Ich habe es versucht mit octave: EDITOR=nano octaveund dann edit filein der Oktave. Durch Drücken von STRG-Z werden die Dinge ziemlich durcheinander gebracht. Vielleicht ist es also nicht Matlab, sondern eine merkwürdige Interaktion darüber, wer das TSTP-Signal empfängt und verwaltet.


Super, das hat es geschafft. Dieses Problem hat mich schon eine Weile beschäftigt! Einen Fehler mit TheMathWorks protokollieren. Vielen Dank!
user282315

1
Ach, neuer Account, noch kein Ruf zum Upvoten.
user282315

54

Wenn dies der einzige Hintergrundprozess ist, der durch Eingeben %gefolgt wird, Returnsollten Sie zu nano zurückkehren.

Das heißt, fgsollte immer funktionieren. Selbst wenn Sie mehr als einen Job haben, sollte er Sie auf den neuesten zurückbringen.


5
imo, das ist die wirkliche antwort, es macht was der op fragt, öffne das geschlossene (strg + z) nano fenster wieder.
DonSeba

coole Tricks hier.
Pietrovismara

Das hilft mir auch.
Arefe

Dies sollte die richtige Antwort sein.
user2180794

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.