「suspend」コマンドを発行した後に端末機能を再開するにはどうすればよいですか?


8

suspend端末に入力すると、実行が中断されました。

どうすれば通常のターミナル機能に戻ることができますか?私が試したてきたCtrl+ CCtrl+ DCtrl+ Qここで示唆したように)、およびCtrl+ Zが、これらの作品のどれも。もちろん、ターミナルを閉じて新しいターミナルを開くことはできますが、ターミナルの機能を「再開」する方法はありませんか?

Ubuntu GNOME 16.04をデフォルト(bash)シェルで実行しています。


申し訳ありませんが、ここで質問しますが、このコマンドの目的は何ですか?
pa4080 2017

1
スクリプトの実行を停止し、後で続行するには;)
Rinzwind

回答:


10

あなたのリンクから:

SIGCONTシグナルを受信するまで。

だからそれは kill -SIGCONT {pid}

  • killall -CONT bash すべてを再開します。
  • kill -18 {pid} 同じでしょう。
  • そしてそうです kill -s CONT {pid}

このリストによると、control-zである必要がありますが、プロセスを停止するには、control-zを使用する必要があります。

18 - SIGCONT - Resume process, ctrl-Z (2nd)
19 - SIGSTOP - Pause the process / free command line, ctrl-Z (1st)

ターミナルで実行されているシェルセッションの{pid}が必要です


そして、ジョブ制御コマンドもあります

fg, bg

The fg command switches a job running in the background into the foreground. 
The bg command restarts a suspended job, and runs it in the background. 
If no job number is specified, then the fg or bg command acts 
upon the currently running job.

それはCtrl + Qであるべきですが、それは何らかの理由で機能していません。シェルが中断されているため、中断されたセッションからCtrl + Q(SIGCONT)を受信できないためと思います。あなたが言うようにそれは機能しますが、kill -SIGCONT PID多くの端末を開いているときに、中断されたセッションのPIDを取得する簡単な方法が見つかりません。
terdon

これは機能していません。私はps auxを使用しました| 端末のpidを取得するためのgrep termは、SIGCONTの3つのバリエーションすべてを試しましたが、どれも機能しませんでした 私がpidを単に殺したとき、ターミナルは閉じました、それで私は正しいpidを持っていました。
ケルベロス2017

@Cerberusでは、ターミナル自体ではなく、ターミナルで実行されているシェルセッションのPIDが必要です。開いているターミナルが1つしかない場合は、で簡単に見つけることができますpgrep bash。そうでない場合は、を使用してpstree -p、そこで端末のPIDを見つけ、その子のPIDを確認します。そのうちの1つがbashセッションであるはずです。
terdon 2017

このシナリオでは、少なくとも2つの端末セッションが必要です。1つは中断され、もう1つはSIGCONTを送信します。
ケルベロス2017

1
通常、SIGCONTは無視されkillall -CONT bashます。:-)
JonasSchäfer2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.