実行中のプログラムをbashのバックグラウンドに移動する


10

bashでプログラムを実行している場合、Ctrl+ を押すことでプログラムを一時停止できZます。プログラムを実行したままにしたい場合は、bgコマンドを使用できます。入力せずに直接プログラムをバックグラウンドに配置する方法はありbgますか?

明確化:私はそれを一時停止することなく、すでに実行中のプログラムをバックグラウンドに置きたいです。


2
これは重複ではありません。端末ウィンドウが閉じているときにプログラムを実行したままにしたくないので、別のコマンドを入力できません。すでに実行中のプロセスをバックグラウンドで配置したい。
KalleElmér2012

1
はい、これは重複ではありません。これをもう一度開いてください。
saji89

これを再開するのを助けてくれたすべての人に感謝します.. @Kalle、質問が再開されました。
saji89 2012年

どうもありがとう!質問の答えを実際に見つけることに関して、私は唯一の方法は最初にそれを一時停止してからそれを背景にすることだと思います。
KalleElmér、2012年

回答:


4

実行中のプログラムをバックグラウンドに移動することはできないと思います(プロセスがまだ実行状態のとき)。
ただし、GNU-Screenと呼ばれるアプリケーションがあります。これを使用すると、コンソールベースのアプリケーション(インタラクティブなコマンドシェル、cursesベースのアプリケーション、テキストエディターなど)を1つの端末内でいくつでも実行できます。
これがGNU-Screenの素晴らしいチュートリアルです。
それはあなたが要求したことを正確に行うわけではありませんが、とにかく目的を果たすことに注意してください。
例:これ
は、GNU-Screenを使用して要求したものの実装です。

  1. 実行screen
    ソフトウェアの詳細が表示されます。Enterキーを押します。
  2. これで通常のターミナルが表示されますが、これは画面のウィンドウですvlc。そのウィンドウ内でプロセスが開始されます。
  3. ここで新しいウィンドウを開くには、Ctrl+ Aを入力してからC。ここで新しいコマンドを実行できます。ウィンドウ1で開始したプロセスがまだ実行中であることに注意してください。
  4. 画面から切り離すには、Ctrl+ Aを押してからを押しますD。これで、古いtermianlに戻ります。ただし、画面から開始したプロセスは引き続き実行されます。

4

私の知る限りでは、それを実行し、次のようにを追加できます。myprogram &

しかし、私はここで非常に間違っているかもしれません。

[編集]:これをよく見て、上記を実行すると、ターミナルを閉じるとアプリケーションが閉じます。アプリケーションをバックグラウンドで実行したい場合は、私が知る限り、デーモンの動作をサポートするようにアプリケーションを作成する必要があります。

[編集2]: nohup command &達成したいことに近いようです。Nohupはアプリケーションの実行を許可し、入力を無視nohup.outし、現在のディレクトリで呼び出されるファイルに出力をリダイレクトします。


ターミナルウィンドウを閉じたときに、閉じていてもかまいません。私が探しているのは、Ctrl + Zのように機能するbashのキーボードショートカットだけですが、プロセスを一時停止するのではなく、バックグラウンドで実行し続けます。
KalleElmér2012

0

これは本当の答えではないかもしれません。UbuntuとMSYSのBashの違いは何でしょうか。

MSYSを実行していてApplication/Chrome &、を実行すると、すぐにバックグラウンドプロセスに移動します。次のプロンプトが点滅を開始するときにMSYS bashを使用できます。

そして、この質問は、実行中のプログラムを同様の目的でバックグラウンドに移動しますか?

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