Linux のバックグラウンドで & と nohup を使用する方法

Linux のバックグラウンドで & と nohup を使用する方法

ターミナルやコンソールで作業しているときは、メールを読むなど、もっと重要な作業があるかもしれないので、ジョブを実行して画面を占有したくない場合があります。ディスクに集中的にアクセスするプロセスについては、1 日のピーク時以外の時間帯 (早朝など) に実行することをお勧めします。これらのプロセスをターミナル画面ではなくバックグラウンドで実行できるようにするには、いくつかのオプションがあります。


ジョブがフォアグラウンドで実行されている場合、ターミナルはジョブによって占有されます。コマンドの後に & を追加すると、ジョブをバックグラウンドで実行できます。例えば: sh test.sh &
バックグラウンドで実行するのに適したコマンドには、検索、時間のかかるソート、一部のシェル スクリプトなどがあります。ジョブをバックグラウンドで実行するときには注意してください。ユーザーの操作を必要とするコマンドをバックグラウンドで実行しないでください。そうしないと、マシンはただ待機するだけになります。ただし、バックグラウンドで実行されているジョブは引き続き結果を画面に出力し、作業を妨げます。バックグラウンドで実行するジョブが大量の出力を生成する場合は、次の方法を使用してその出力をファイルにリダイレクトするのが最適です。

コマンド > out.file 2>&1 &

この方法では、すべての標準出力とエラー出力が out.file というファイルにリダイレクトされます。

PS: プロセスを正常に送信すると、プロセス ID が表示されます。これを使用して、プロセスを監視したり、強制終了したりできます。 (ps -ef | grep プロセス番号または kill -9 プロセス番号)

ノーフープ

& コマンドを使用した後、ジョブはバックグラウンドに送信されて実行されます。現在のコンソールは占有されませんが、現在のコンソールが閉じられると (アカウントからログアウトすると)、ジョブは実行を停止します。 nohup コマンドは、アカウントからログアウトした後も、対応するプロセスの実行を継続できます。 nohup はハングアップしないことを意味します。コマンドの一般的な形式は次のとおりです。

nohup コマンド &

nohup コマンドを使用してジョブを送信すると、出力ファイルが別途指定されていない限り、デフォルトではジョブからのすべての出力は nohup.out という名前のファイルにリダイレクトされます。

nohup コマンド > myout.file 2>&1 &

nohup を使用した後、多くの人はそれを無視します。実際、現在のアカウントが終了したり、異常終了したりすると、コマンドが自動的に終了する可能性があります。したがって、nohup コマンドを使用してコマンドをバックグラウンドで実行した後は、コマンドがバックグラウンドで引き続き実行されるように、exit を使用して現在のアカウントを通常どおり終了する必要があります。

Ctrl + Z
フォアグラウンドで実行中のコマンドをバックグラウンドに移し、一時停止状態にすることができます。

Ctrl+C キー
フォアグラウンド コマンドを終了します。

仕事
現在バックグラウンドで実行されているコマンドの数を確認します。

jobs -l オプションは、すべてのタスクの PID を表示します。ジョブのステータスは、実行中、停止中、または終了済みのいずれかになります。ただし、タスクが終了 (強制終了) された場合、シェルは現在のシェル環境に認識されているリストからタスクのプロセス ID を削除します。

2>&1分析

コマンド >out.file 2>&1 &
  1. command>out.file は、コマンドの出力を out.file ファイルにリダイレクトします。つまり、出力内容は画面に印刷されず、out.file ファイルに出力されます。
  2. 2>&1 は標準エラーを標準出力にリダイレクトします。ここでの標準出力は out.file ファイルにリダイレクトされています。つまり、標準エラーも out.file ファイルに出力されます。最後の & により、コマンドはバックグラウンドで実行されます。
  3. 2>1 の意味を考えてみましょう。2 と > の組み合わせはエラーのリダイレクトを意味し、1 はエラーが標準出力ではなくファイル 1 にリダイレクトされることを意味します。これを 2>&1 に変更すると、& と 1 の組み合わせは標準出力を意味し、エラーは標準出力にリダイレクトされます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux nohup はプログラムをバックグラウンドで実行し、表示します (nohup と &)
  • Python Nohup Linux バックグラウンド実行出力の問題を解決する
  • PHP デーモン プロセスと Linux コマンド nohup を組み合わせて、1 秒に 1 回のタスク実行を実装します。
  • Linux で nohup ログ出力が大きすぎる問題の解決方法の詳細な説明
  • Linux nohup と tail-f の使い方
  • Linux での Nohup とバックグラウンド実行プロセスの表示と終了

<<:  MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

>>:  MySQL の int、char、varchar のパフォーマンスを比較する

推薦する

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

MySQLストレージエンジンについて学びましょう

目次序文1. MySQL メインストレージエンジン: 2. さまざまなストレージエンジンがテーブルを...

Vueでクラススタイルを使用する方法の詳細

目次1. ブール2. 表現3. マルチクラスパッケージ4. v-bind でクラス class を直...

Nginx をベースに特定の IP への短期アクセス数を制限する

特定の期間内に特定の IP へのアクセス回数を制限する方法は、特に悪意のある DDOS 攻撃に直面し...

テーブルの動的な色の変更を実現するJavaScript

この記事では、テーブルの動的な色の変更を実現するためのJavaScriptの具体的なコードを参考まで...

Linux システムで TCP 接続を作成するプロセスの紹介

目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...

Mysql WorkBench のインストールと設定のグラフィックチュートリアル

この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

Linux スケジュールタスクの関連操作の概要

皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスク...

HTML における src と href の違いについての簡単な説明

簡単に言うと、srcは「このリソースをロードしたい」という意味で、hrefは「このリソースに関連付け...

Mysqlサーバーのインストール、構成、起動、シャットダウン方法の詳細な説明

1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

Centos6 で 20TB を超えるディスクをパーティション分割してフォーマットするためのサンプル コード

1. サーバー環境の構成: 1. ディスクパーティションを確認します。最近、あるプロジェクト内のサー...

Vue ページレンダリングにおけるキーの適用例チュートリアル

導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...