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 では変数はヒープに保存されるのか、スタックに保存されるのか?

推薦する

検索ボックスと検索ボタンの境界線が重なり合わない問題を解決

今日、Baiduのページで練習していたところ、検索ボックスとボタンの余白とパディングの値が0に設定さ...

Eclipse/Tomcat でホットデプロイメントとホットスタートを実装する方法

1. ホット デプロイメント: コンテナの実行中にプロジェクト全体を再デプロイすることを意味します。...

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...

innodb_flush_method 値メソッド (例の説明)

innodb_flush_methodのいくつかの典型的な値 fsync: InnoDB は fs...

MySQL ビューの原則と使用例の概要

この記事では、MySQL ビューの原理と使用法についてまとめます。ご参考までに、詳細は以下の通りです...

クラスタrpmを使用してMySQLをインストールするための詳細な手順

MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...

MySQL 権限とデータベース設計のケーススタディ

権限とデータベース設計ユーザー管理SQLyogを使用してユーザーを作成し、権限を付与する基本コマンド...

N キロメートル以内のデータを検索する MySQL の簡単な例

地球の円周率と半径、検索ポイントの経度と緯度から、検索ポイントと検索データテーブル間の距離はNキロメ...

MySQLで一意のサーバーIDを生成する方法

序文MySQL では、server-id を使用してデータベース インスタンスを一意に識別し、それを...

MySQLクエリステートメントの簡単な操作例

この記事では、例を使用して、MySQL クエリ ステートメントの簡単な操作を説明します。ご参考までに...

JavaScript を使用して簡単なアルゴリズムを実行する方法

目次質問1件2つの方法3 実験結果と考察質問1件ご存知のとおり、 Pycharm 、 IDLE 、 ...

Linux でのログ サーバーの設定に関するグラフィック チュートリアル

序文この記事では、Linux 構成ログ サーバーに関する関連コンテンツを主に紹介し、参考と学習のため...

Linux プロセスの CPU 使用率が 700% に達し、終了できない場合の解決策

目次1. 問題の発見2. プロセスの詳細情報を表示する3. 解決策4. 大法を再開する1. 問題の発...

Vue3とElectronを使ったデスクトップアプリケーションの詳しい説明

目次Vue CLIはVueプロジェクトを構築しますVue プロジェクトをマークダウン エディターに変...

既存のDockerコンテナの内容を変更する方法

1. Docker psはコンテナをリストします 2. Docker cpはコンテナにファイルをコピ...