web-dev-qa-db-ja.com

ブロックせずに端末からコマンドを実行する方法を教えてください。

私は端末からUbuntuでたくさんのプログラムを走らせていますが、私はプログラムを開いた後も端末を使い続けたいと思います。別のウィンドウを開く必要がないように、プログラムをバックグラウンドにする方法はありますか。

38
Salvador Dali

端末プログラムを実行して端末の使用を続ける方法はいくつかあります。

  • 別の端末タブを開くことができます(右クリックしてから[新しいタブを開く]を選択します)。
  • 実行するコマンドに&を追加することができます。エラーメッセージなど、端末に出力されるテキストは表示されません。
  • あなたが入力することができます Ctrl - Z 次にbgを実行します。これはcommand &を実行するのと同じ効果があります。
  • Nohup command &を実行してからEnterを押すことができます。 ( ccpizza に感謝します。下記のコメントを参照してください。)

しかし、押すこと Alt - F2 そしてGUIからあなたのコマンドを実行することは通常ベストプラクティスと考えられています - 端末はまったくありません!

&Nohupではなく)を使用しているときに、端末を閉じると、後でdisownを実行しない限り、アプリケーションは終了します。

EDIT:Nohupを使うとホームフォルダーに小さな糞が残ることがあります。通常端末に記録されていたものはどうやら〜/の中のファイルに保存されます。

~~

バックグラウンドでプログラムを実行する簡単な方法はprogram-name & disownです。これはプロセスを終了させずに閉じることができる端末にあなたを落とします。

54
WindowsEscapist

あなたは&>/dev/nullに加えて新しいセッションでプログラムを実行するためにsetsidを使うことができますので、どんなログメッセージも受け取らないでしょう。

だからそれはのようになります

setsid program-name &>/dev/null

6
Rumid

&の後にコマンドを実行することができます。

例えば:

サンダーバード&

詳しくは こちら をご覧ください。

6
Viertaxa

screenコマンドを使用すると、単一のウィンドウを使用して複数のターミナルセッションを開き、タップすることができます

apt-get install screen (On Debian based Systems)

yum install screen (On RedHat based Systems)

screen(新しい画面を開始)

[Your command]

Ctrl+A dは画面を離れます...など

https://linuxize.com/post/how-to-use-linux-screen/

1
Ahmed Ismail

tmux(またはscreenのような仮想端末で実行できますが、もうメンテナンスされていないと聞きました)

# This ataches your terminal to a virtual terminal
tmux
run_your_command
# This detaches your virtual terminal (previous command can be running)
CTRL-b d
run_other_commands # on your terminal
# re-attach the virtual terminal to see the status of run_your_command
tmux a

tmuxは、次のようにさらに多くのことができます。

  • 仮想端末を別の端末に移動します
  • いくつかの端末で仮想端末を共有します(他のユーザーはあなたの行動を見ることができます;-))
  • 「画面」を分割して、複数の端末を作成します。
  • ...

https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/

0