web-dev-qa-db-ja.com

端末をブロックせずにLinux端末からプログラムを実行するにはどうすればよいですか?

端末からプログラムを起動すると、プログラムを閉じるまで、その端末インスタンスを再び使用できません。

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

35
ueaiox

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

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

$ program &

プログラムを停止することもできます CTRLz 後でbgを使用してバックグラウンドに配置します

$ program
^Z
$ bg

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

63

Ubuntu 16.10では、他の回答で述べられているctrl + Zの動作が機能しませんが、

program &
^C

言い換えれば、ctrl + cは、アンパサンドでプログラムを開始した後。

2
Gemtastic

ジョブコントロールが希望どおりでない場合は、 screen を調べてください。

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

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

1
Roger Pate

Ubuntu 19では、他の回答で述べられているctrl + Zのことも機能しませんが、これは機能します。

$ <YOUR-PROGRAM> &
^c
0
Marcelo Gumiero