¿Cómo vuelvo a nano después de presionar Ctrl-Z si no tengo indicador de shell (en la sesión de Matlab)

31

Estoy usando nano dentro de una sesión de MATLAB que se ejecuta dentro de un terminal de pantalla (-x). Accidentalmente presioné Ctrl-Z e inmediatamente sale de nano, imprime "Use" fg "para volver a nano", pero no muestra un símbolo del sistema. Lo que escribo aparece en la pantalla pero nada responde. Si presiono Ctrl-Z, ^ Z simplemente se imprime en la pantalla. ¿Algunas ideas? Usando 12.04.

usuario282315
fuente
Debería tener un mensaje después de presionar ctrl-z. Tengo ... parece que esto no está sucediendo en su caso. ¿Cómo exactamente corres nanoen la terminal?
Rmano
Me acabo de dar cuenta de que realmente no estoy usando 12.04. De hecho, estoy corriendo nanodesde dentro de una sesión de MATLAB, que es (obviamente) el problema (perdón por no mencionar eso; había olvidado que estaba en MATLAB). Llamar jobsen otra pantalla no enumera ningún trabajo para detener.
user282315

Respuestas:

11

En los comentarios, el autor dice que está ejecutando el nanocomando desde Matlab y que no hay ningún aviso después de suspenderlo con CTRL-Z. Este es probablemente un error en Matlab (1) que no debería permitir que un CTRL-Z llegue a nano si no puede hacer frente a él ...

El problema es que el comando de shell fg(y bg, y jobs) solo funciona con los hijos directos del shell. Pero puede continuar un proceso detenido desde otro shell, aunque esto no garantizará que el estado de la pantalla se gestione correctamente:

  1. en otra ventana de terminal, encuentre el nanoproceso:

    % 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. Tenga en cuenta que está detenido (estado T)

  3. Continúa con

    kill -CONT 10600 
    

... y espero que funcione (puede estropear mucho la terminal). También puedes probar un

killall -CONT nano 

de esa manera la CONTseñal se envía a todos los procesos "nano" (aunque no debería ser un problema).


Notas al pie:

(1) Intenté con octave: EDITOR=nano octavey luego edit fileen octava. Presionar CTRL-Z complica las cosas bastante bien ... así que tal vez no sea Matlab sino una interacción extraña sobre quién recibe y administra la señal TSTP.

Rmano
fuente
Impresionante, eso lo hizo. ¡Este problema me había estado molestando por un tiempo! Registrando un error con TheMathWorks. ¡Gracias!
user282315
1
Por desgracia, cuenta nueva, no hay reputación para votar (todavía).
usuario282315
54

Si es el único proceso en segundo plano que ingresa %seguido por Returndebería volver a nano.

Dicho esto, fgsiempre debería funcionar. Incluso cuando tiene más de un trabajo, debería devolverlo al más nuevo.

Oli
fuente
55
OMI, esta es la respuesta real, hace lo que el op pregunta, vuelve a abrir las ventanas Nano cerradas (Ctrl + Z).
DonSeba
trucos geniales aquí.
pietrovismara
Esto también me ayuda.
Arefe
Esta debería ser la respuesta correcta.
user2180794