Linuxコマンドをバックグラウンドで実行する方法

Linuxコマンドをバックグラウンドで実行する方法

通常、ターミナルでコマンドを実行する場合、別のコマンドの入力を開始する前に、現在のコマンドが終了するまで待つ必要があります。これは、コマンドをフォアグラウンドで実行する、またはフォアグラウンド プロセスと呼ばれます。プロセスがフォアグラウンドで実行されている場合、そのプロセスはシェルを占有し、入力デバイスを通じてそのプロセスと対話することができます。

では、コマンドの実行に時間がかかり、同時に他のコマンドを実行したい場合はどうすればよいでしょうか?選択できるオプションはいくつかあります。最も明白で直接的なオプションは、新しいシェル セッションを開始し、そこからコマンドを実行することです。別のオプションとして、コマンドをバックグラウンドで実行することもできます。

バックグラウンド プロセスは、ターミナルの起動後にバックグラウンドで実行され、ユーザーと対話しないプロセス/コマンドです。

この記事では、Linux のバックグラウンド プロセスについて説明します。バックグラウンドでコマンドを開始し、セッションが終了するまでプロセスを実行し続ける方法を説明します。

バックグラウンドでLinuxコマンドを実行する

コマンドをバックグラウンドで実行するには、コマンドの後にアンパサンド ( & ) を追加します。

指示 &

シェルのタスク ID (括弧で囲まれた内容) とプロセス ID がターミナルに出力されます。

[1] 25177

バックグラウンドで同時に複数のプロセスを実行できます。

バックグラウンド プロセスは、端末に情報を書き込み続けます。 stdoutおよびstderrメッセージを抑制するには、次の構文を使用します。

コマンド > /dev/null 2>&1 &

>/dev/null 2>&1 stdout /dev/nullリダイレクトし、 stderr sdtoutにリダイレクトすることを意味します。

現在のシェル セッション内のすべての停止されたタスクとバックグラウンド タスクのステータスを表示するには、 jobsコマンドを使用します。

ジョブ -l

出力には、タスク ID、プロセス ID、タスクのステータス、およびタスクを開始したコマンドが含まれます。

[1]+ 25177 ping google.com & を実行中

バックグラウンド プロセスをフォアグラウンドに移動する場合は、 fgコマンドを使用します。


バックグラウンドで複数のタスクがある場合は、コマンドの後に% + タスク ID を追加します。

%1 を

バックグラウンド プロセスを停止するには、 killコマンドの後にプロセス ID を追加します。

キル -9 25177

フォアグラウンドプロセスをバックグラウンドに移動する

フォアグラウンド プロセスをバックグラウンドに移動するには:

01. Ctrl+Zを押して現在のプロセスを停止します

02. bgと入力して停止したプロセスをバックグラウンドに移動する

シェルが終了するまでバックグラウンドプロセスを実行し続ける

接続が失われた場合、またはシェル セッションを終了した場合、バックグラウンド プロセスは終了します。対話型シェルが終了するまでプロセスが実行されるようにする方法はいくつかあります。

1 つの方法は、組み込みのdisownを使用して、シェルのタスク制御からタスクを削除することです。

勘当する

バックグラウンド タスクが多数ある場合は、コマンドの後に% + タスク ID を追加します。

%1 を勘当する

jobs -lを使用して、ジョブがジョブ リストから削除されたことを確認します。実行中のプロセスを一覧表示するには、 ps auxコマンドを使用します。

シェルが終了するまでプロセスが実行されるようにする別の方法は、 nohup使用することです。

nohupコマンドの後に別のプログラムを引数として指定すると、すべてのSIGHUP (ハングアップ) 信号が無視されます。 SIGHUPシグナルは、端末が閉じられたことをプロセスに通知するために送信されます。

nohupコマンドを使用してコマンドをバックグラウンドで実行するには、次のように入力します。

nohup コマンド &

コマンド出力はnohup.outファイルにリダイレクトされます。

nohup: 入力を無視し、出力を 'nohup.out' に追加します

ログアウトしたり、ターミナルを閉じたりしても、プロセスは終了しません。

代替案

一部のプログラムでは、複数の非対話型セッションを同時に実行できます。

画面

Screen または GNU Screen は、画面セッションを開き、そのセッション内で任意の数のウィンドウ (仮想端末) を開くことができる端末マルチプレクサです。 Screen で実行されているプロセスは、ウィンドウが表示されていない場合や接続が失われた場合でも実行され続けます。

テムマックス

Tmux は最新の GNU スクリーン インタラクション プログラムです。 Tmux を使用すると、セッションを作成し、そのセッション内で複数のウィンドウを開くことができます。 Tmux セッションは永続的であるため、ターミナルを閉じても、Tmux で実行されているプログラムは引き続き実行されます。

要約する

コマンドをバックグラウンドで実行するには、コマンドの後に&記号を追加します。

バックグラウンドでコマンドを実行すると、そのコマンドが完了するのを待たずに別のコマンドを実行できます。

上記は、Linux コマンドをバックグラウンドで実行する方法の詳細な内容です。Linux コマンドをバックグラウンドで実行する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Linux gzipコマンドの使用
  • Linux userdel コマンドの使用法
  • Linuxのdateコマンドの使用
  • Linux statコマンドの使用
  • Linux lsコマンドの使用
  • Linux lnコマンドの使用
  • Linux の cut コマンドの説明
  • Linux bzip2 コマンドの使用

<<:  MySQLの一般的なバックアップコマンドとシェルバックアップスクリプトの共有

>>:  メモリの原則に関する詳細な説明: JS では変数はヒープに保存されるのか、スタックに保存されるのか?

推薦する

Vue ディレクティブ v-html と v-text

目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...

セマンティックタグを使用して、IE6、7、8と互換性のあるHTMLを記述します。

HTML5 では、ヘッダー、フッター、ナビゲーションなどのセマンティック タグが追加されているため...

Linux コマンドラインのクイックヒント: ファイルの検索方法

私たちのコンピューターには、ディレクトリ、写真、ソース コードなどのファイルが保存されています。たく...

Vueでスワイパープラグインを使用する際の問題を解決する

デモを作成するときにこのプラグインを使用していくつか問題が発生したため、プラグインの使用方法といくつ...

CSS でのシングル div 描画テクニックの実装

純粋な HTML + CSS を使ってドラえもんの絵を描くなど、CSS 描画に関する記事をよく見かけ...

フロントエンド JavaScript ハウスキーパー package.json

目次1. 必須属性1. 名前2. バージョン2. 説明情報1. 説明2. キーワード3. 著者4. ...

CSS疑似クラス名を数字で始めないでください

初心者が div+css を開発する場合、.ggg、#ccc などの形式の CSS 疑似クラス名を付...

Linux に起動方法を追加する (サービス/スクリプト)

システムの起動時に読み込む必要がある設定ファイル/etc/profile、/root/.bash_p...

入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド

HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...

JavaScript 構造化代入の詳細な説明

目次コンセプト配列の分割値を個別に宣言して割り当てるデフォルト値の構造化解除変数値の交換関数によって...

JS でモバイルのインタラクティブ エクスペリエンスを向上させる方法

目次1. 即時フィードバック1.1 ボタンからの即時フィードバック1.2 継続的なフィードバック1....

Mysql Explainコマンドの使用と分析

mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...

CSS で波の効果を作成するためのアイデア

以前、純粋な CSS を使用して波の効果を実現する方法をいくつか紹介しました。それらについては、次の...

Docker を使用して ELK 環境を迅速にデプロイする方法の詳細な説明 (最新バージョン 5.5.1)

Linux サーバーに Docker をインストールした後、関連する公式 Docker イメージを...

vue+el-element でファイル名に応じてダイアログを動的に作成する実践

目次背景成し遂げる1. カプセル化された /utils/dialogControl.js 2.ダイア...