ターミナルをブロックせずにLinuxターミナルからプログラムを実行する方法は?


34

ターミナルからプログラムを起動すると、プログラムを閉じるまでそのターミナルインスタンスを使用できなくなります。

プログラムが終了するまで端末をブロックせずに、端末からプログラム/アプリケーションを実行する方法はありますか?

回答:


62

ほとんどのシェルでサポートされているジョブ制御を探しています。概要については、この記事を参照してください。ある時点で、Ubuntuのデフォルトのシェルであるbash の公式ドキュメントを読むこともできます。

要するに、バックグラウンドで自動的にジョブを開始する&には、プログラム呼び出しの後に

$ program &

また、プログラムを停止CTRLzし、後でバックグラウンドに置くこともできますbg

$ program
^Z
$ bg

それらを再びフォアグラウンドで実行するには、を使用しますfg


bashの公式ドキュメントがあることを知ることは、この答えから得た大きな二次的な助けでした、ありがとう!
アデム

1

ジョブ制御が希望どおりでない場合は、画面を調べてください。

画面は複数の仮想端末を制御するため、複数のプログラムを相互に対話せずに実行できます。たとえば、mocp(音楽プレーヤー)、aptitude(パッケージマネージャー)、およびvim(テキストエディター)を同時に実行できますが、これらはすべて端末を単独のアクセス権があるかのように扱う対話型プログラムです。

これにより、画面内で新しい端末を作成してマンページを読むなど、他の場所を失うことなく、前後に切り替えるなど、あるタスクから別のタスクに簡単に切り替えることができます。


1

Ubuntu 16.10では、他の答えで言及されているctrl + Zのことを得ることができませんが、

program &
^C

つまり、ctrl + c末尾のアンパサンドでプログラムを開始した後、私にとってはうまくいきます。

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