Como volto ao nano depois de pressionar Ctrl-Z se não tenho um prompt de shell (na sessão do Matlab)

31

Estou usando o nano dentro de uma sessão do MATLAB que está sendo executada dentro de um terminal de tela (-x). Toquei acidentalmente em Ctrl-Z e ele imediatamente deixa o nano, imprime "Use" fg "para retornar ao nano", mas não mostra um prompt de comando. Tudo o que digito aparece na tela, mas nada responde. Se eu pressionar Ctrl-Z, ^ Z será impresso na tela. Alguma ideia? Usando 12.04.

user282315
fonte
Você deve receber um aviso depois de pressionar ctrl-z. Eu tenho ... parece que isso não está acontecendo no seu caso. Como exatamente você corre nanono terminal?
Rmano 16/05
Acabei de perceber que não estou realmente usando o 12.04. Na verdade, estou executando nanodentro de uma sessão do MATLAB, que é (obviamente) o problema (desculpe por não mencionar isso; eu esqueci que estava no MATLAB). Chamar jobsem outra tela não lista nenhum trabalho a ser exibido.
User282315

Respostas:

11

Nos comentários, o autor diz que está executando o nanocomando do Matlab, e que não há nenhum prompt após a suspensão com o CTRL-Z. Este é provavelmente um bug no Matlab (1) que não deve permitir que um CTRL-Z chegue ao nano se não conseguir lidar com ele ...

O problema é que o comando do shell fg(e bg, e jobs) funciona apenas com filhos diretos do shell. Mas você pode continuar um processo parado de outro shell, embora isso não garanta que o status da tela seja gerenciado corretamente:

  1. em outra janela do terminal, encontre o nanoprocesso:

    % 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. Observe que está parado (estado T)

  3. Continue com

    kill -CONT 10600 
    

... e espero que funcione (pode atrapalhar muito o terminal). Você também pode tentar um

killall -CONT nano 

dessa forma, o CONTsinal é enviado para todos os processos "nano" (embora não deva ser um problema).


Notas de rodapé:

(1) Tentei com octave: EDITOR=nano octavee depois edit filena oitava. Pressionar CTRL-Z bagunça bastante as coisas ... então talvez não seja o Matlab, mas uma interação estranha sobre quem recebe e gerencia o sinal TSTP.

Rmano
fonte
Incrível, foi o que aconteceu. Esse problema me incomodava há um tempo! Registrando um bug com o TheMathWorks. Obrigado!
User282315
1
Infelizmente, nova conta, sem reputação para votar (ainda).
User282315
54

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

Dito isto, fgdeve sempre funcionar. Mesmo quando você tem mais de um emprego, ele deve retornar ao mais novo.

Oli
fonte
5
imo, esta é a resposta real, ele faz o que a operação pede, reabre as janelas Nano fechadas (ctrl + z).
DonSeba
truques legais aqui.
Pietrovismara # 23/17
Isso me ajuda também.
Arefe
Essa deve ser a resposta certa.
user2180794