(Matlabセッションで)シェルプロンプトがない場合にCtrl-Zを押した後にnanoに戻る方法


31

画面(-x)端末内で実行されているMATLABセッション内でnanoを使用しています。誤ってCtrl-Zを押すと、すぐにnanoが終了し、「 "fg"を使用してnanoに戻ります」と出力されますが、コマンドプロンプトは表示されません。入力した内容はすべて画面に表示されますが、何も応答しません。Ctrl-Zを押すと、^ Zが画面に出力されます。何か案は?12.04を使用します。


ctrl-zを押すとプロンプトが表示されます。私は...あなたの場合、これは起こっていないようです。nanoターミナルでどのくらい正確に実行しますか?
Rmano

12.04を実際に使用していないことに気付きました。私は実際nanoにはMATLABセッション内から実行していますが、これは(明らかに)問題です(それを言及するのを忘れて申し訳ありません;私はMATLABにいたことを忘れていました)。jobs別の画面で呼び出しても、プルアップするジョブはリストされません。
user282315

回答:


11

コメントの中で、著者は、nanoMatlabからコマンドを実行していること、およびCTRL-Zでコマンドを中断した後、プロンプトはまったく表示されないと述べています。これはおそらくMatlab(1)のバグであり、CTRL-Zが対処できない場合、nanoに到達できないようにする必要があります...

問題は、シェルコマンドfg(およびbg、およびjobs)がシェルの直接の子でのみ機能することです。ただし、停止したプロセスを別のシェルから続行できますが、これは画面のステータスが正しく管理されることを保証するものではありません。

  1. 別のターミナルウィンドウで、nanoプロセスを見つけます。

    % 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. 停止していることに注意してください(状態T

  3. 続ける

    kill -CONT 10600 
    

...そしてそれが機能することを願っています(端末を大きく台無しにすることができます)また、試すことができます

killall -CONT nano 

そうすれば、CONTすべての「ナノ」プロセスに信号が送信されます(ただし、問題はないはずです)。


脚注:

(1)octaveEDITOR=nano octaveで試した後edit file、オクターブで試しました。CTRL-Zを押すと、物事が非常にうまく混乱します...たぶん、Matlabではなく、TSTP信号の受信と管理に関する奇妙な相互作用です。


素晴らしい、それでした。この問題はしばらく私を悩ませていました!TheMathWorksでバグを記録します。ありがとう!
user282315

1
残念ながら、新しいアカウント、投票する評判はありません(まだ)。
user282315

54

それが唯一のバックグラウンドにプロセス入りだ場合%に続いてReturn、あなたはnanoに返す必要があります。

つまり、fg常に機能するはずです。複数のジョブがある場合でも、最新のジョブに戻る必要があります。


5
imo、これは本当の答えです、それはopが求めることを行い、閉じた(ctrl + z)Nanoウィンドウを再び開きます。
-DonSeba

ここでクールなトリック。
-pietrovismara

これも私を助けます。
アレフェ

これが正しい答えです。
user2180794

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.