Comment revenir à nano après avoir appuyé sur Ctrl-Z si je n'ai pas d'invite de shell (en session Matlab)

31

J'utilise nano dans une session MATLAB qui s'exécute dans un terminal écran (-x). J'ai accidentellement frappé Ctrl-Z et il laisse immédiatement nano, affiche "Utiliser" fg "pour revenir à nano", mais n'affiche pas d'invite de commande. Tout ce que je tape apparaît à l'écran mais rien ne répond. Si j'appuie sur Ctrl-Z, ^ Z s'imprime simplement à l'écran. Des idées? Utilisation de 12.04.

user282315
la source
Vous devriez avoir une invite après avoir appuyé sur ctrl-z. J'ai ... il semble que cela ne se passe pas dans votre cas. Comment courez-vous exactement nanodans le terminal?
Rmano
Je viens de réaliser que je n'utilise pas vraiment 12.04. En fait, je cours nanodepuis une session MATLAB, ce qui est (évidemment) le problème (désolé de ne pas avoir mentionné cela; j'avais oublié que j'étais en MATLAB). L'appel jobsdans un autre écran ne répertorie aucun travail à afficher.
user282315

Réponses:

11

Dans les commentaires, l'auteur dit qu'il exécute la nanocommande à partir de Matlab et qu'il n'y a aucune invite après la suspension avec CTRL-Z. C'est probablement un bug dans Matlab (1) qui ne devrait pas permettre à un CTRL-Z d'arriver à nano s'il ne peut pas y faire face ...

Le problème est que la commande shell fg(et bg, et jobs) ne fonctionne qu'avec les enfants directs du shell. Mais vous pouvez continuer un processus arrêté à partir d'un autre shell, bien que cela ne garantisse pas que l'état de l'écran est correctement géré:

  1. dans une autre fenêtre de terminal, recherchez le nanoprocessus:

    % 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. Notez qu'il est arrêté (état T)

  3. Continuez avec

    kill -CONT 10600 
    

... et j'espère que cela fonctionne (cela peut grandement gâcher le terminal). Vous pouvez également essayer un

killall -CONT nano 

de cette façon, le CONTsignal est envoyé à tous les "nano" processus (cela ne devrait pas être un problème cependant).


Notes de bas de page:

(1) J'ai essayé avec octave: EDITOR=nano octavepuis edit fileen octave. Appuyer sur CTRL-Z gâche assez bien les choses ... alors ce n'est peut-être pas Matlab mais une étrange interaction sur qui reçoit et gère le signal TSTP.

Rmano
la source
Génial, ça l'a fait. Ce problème me dérangeait depuis un moment! Consigner un bogue avec TheMathWorks. Merci!
user282315
1
Hélas, nouveau compte, aucune réputation à voter (pour le moment).
user282315
54

S'il s'agit du seul processus en arrière-plan, l'entrée %suivie de Returndevrait vous ramener à nano.

Cela dit, cela fgdevrait toujours fonctionner. Même si vous avez plus d'un emploi, cela devrait vous faire rebondir sur le plus récent.

Oli
la source
5
imo, c'est la vraie réponse, elle fait ce que l'op demande, rouvre les fenêtres Nano fermées (ctrl + z).
DonSeba
trucs sympas ici.
pietrovismara
Cela m'aide aussi.
Arefe
Ce devrait être la bonne réponse.
user2180794