Linux nohup はプログラムをバックグラウンドで実行し、表示します (nohup と &)

Linux nohup はプログラムをバックグラウンドで実行し、表示します (nohup と &)

1. バックグラウンド実行

一般的に、Linux 上のプログラムは .sh ファイル (./sh ファイル) を実行して実行されます。現在の CMD ウィンドウの動作に影響を与えず、バックグラウンドで実行する必要がある場合はどうすればよいでしょうか。

現時点では、これを実現するには nohup コマンドと & コマンドを使用する必要があります。

nohup java -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -jar test.jar $1 $2 $3 &

(1)ノフープ

コマンドが中断されることなく実行されることを示すために、コマンドの先頭に追加します。

(2)&

コマンドの終了をロードし、このコマンドがバックグラウンドで実行されることを示します。

2. バックグラウンドで実行されているコマンドを表示する

これを表示するには、ps と jobs という 2 つのコマンドがあります。違いは、ジョブは現在のターミナルのバックグラウンドで実行されたタスクのみを表示でき、ターミナルを変更すると表示されなくなることです。 ps コマンドは、瞬間的なプロセスのダイナミクスを表示するのに適しており、他の端末のタスクを表示できます。

(1)仕事

[root@localhost test]# ジョブ
[1]- nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 & を実行 (作業ディレクトリ: /home/ams/ams-server/test)
[2]+ nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 & を実行しています

2 つのバックグラウンド プロセスが次々に開始され、ジョブを使用した後、両方が表示されました。 「+」は最新のタスク(現在のタスク)を表し、「-」は前のタスクを表します。

jobs コマンドは、現在のコマンド ラインで nohup と & が使用されている場合にのみこれを表示できます。これらを .sh スクリプトに記述してスクリプトを実行すると、表示されません。

たとえば、次のスクリプトを実行すると、ジョブは表示されません。

#!/bin/bash
nohup java -Dfile.encoding=UTF-8 -Dname=ランタイム名 -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 &

(2)psコマンド

[root@localhost テスト]# ps -aux|grep java
root 21219 0.3 3.9 6258172 148900 ポイント/0 Sl 10:08 0:02 java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar
ルート 21662 0.2 3.0 5041008 116648 ポイント/0 Sl 10:10 0:01 java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar
ルート 23761 0.0 0.0 112664 972 ポイント/0 S+ 10:19 0:00 grep --color=auto java

これはプロセスを表示するためによく使用されるコマンドなので、これ以上は説明しません。

a: すべてのプログラムを表示 u: ユーザーベースの形式で表示 x: 端末に関係なくすべてのプログラムを表示

3. 現在バックグラウンドで実行中のプログラムを閉じる

キルコマンド

(1)jobsコマンドでjobnumを確認し、kill %jobnumを実行します。

(2)psコマンドでプロセスID PIDを表示し、kill %PIDを実行する。

フォアグラウンド プロセスの場合は、Ctrl + c を実行して終了します。

4. フォアグラウンドプロセスとバックグラウンドプロセスの切り替えと制御

(1)fgコマンド

バックグラウンドのコマンドをフォアグラウンドに移動して実行を継続します

バックグラウンドで複数のコマンドがある場合は、まず jobs を使用してジョブ番号を表示し、次に fg %jobnum を使用して選択したコマンドを呼び出すことができます。

(2)Ctrl + zコマンド

フォアグラウンドで実行中のコマンドをバックグラウンドに移し、一時停止状態にする

(3)bgコマンド

バックグラウンドで一時停止されているコマンドを、バックグラウンドで実行し続けるコマンドに変更します。

バックグラウンドで複数のコマンドがある場合は、まず jobs を使用してジョブ番号を表示し、次に bg %jobnum を使用して選択したコマンドを呼び出して実行を継続できます。

[root@localhost test]# ジョブ
[1]- nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 & を実行 (作業ディレクトリ: /home/test)
[2]+ nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 & を実行しています
 
// fg を使用した後、タスク 2 をフォアグラウンドに移動します [root@localhost test]# fg 2
nohup java -Dfile.encoding=UTF-8 -Dname=コンテナ名 -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3
 
^Z
// Ctrl+Z を押した後、タスク 2 をバックグラウンドで実行して一時停止します [2]+ 停止しました nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3
 
// bg を使用した後、タスク 2 の操作をアクティブ化します [root@localhost test]# bg 2
[2]+ nohup java -Dfile.encoding=UTF-8 -Dname=コンテナ名 -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &

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

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

<<:  WeChatミニプログラム開発のためのコンポーネント設計仕様

>>:  WeChatミニプログラムの開発をスピードアップするためのヒント

推薦する

実稼働環境でのNginx高可用性ソリューションの実装プロセスの分析

準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...

DOCTYPE 文書型宣言 (Web ページ愛好家必読)

DOCTYPE 宣言 作成するすべてのページの先頭に、ドキュメント宣言が必要です。はい、そうでしょう...

SSH ポート転送、ローカル ポート転送、リモート ポート転送、動的ポート転送の詳細

パート 1 SSH ポート転送の概要カフェで無料Wi-Fiを利用しているとき、誰かがあなたのパスワー...

Firefox または IE でスパン幅が決定されない場合の解決策

コードをコピーコードは次のとおりです。 <html xmlns="http://ww...

JDBC および MySQL 一時テーブルスペースの詳細な分析

背景一時テーブルスペースは、データベースのソート操作を管理し、一時テーブルや中間ソート結果などの一時...

Linux での Docker と portainer の設定方法

1.Docer CEをインストールして使用するこの記事では、CentOS 7 を例に Docker ...

mysql データ型変換の実装

1. 問題下図のような表があり、結果値がreference_high値より大きいデータを見つける必要...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

MyISAMとInnoDBの違いについてお話しましょう

主な違いは次のとおりです。 1. MySQL はデフォルトで MyISAM を使用します。 2. M...

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

HTML チュートリアル: 定義リスト

<br />原文: http://andymao.com/andy/post/104.h...

JavaScript タイマーの詳細

目次1. 簡単な紹介2. 間隔を設定する2.1 説明2.2 パラメータ2.3 戻り値2.4 使用法3...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

W3C チュートリアル (14): W3C RDF および OWL アクティビティ

RDF と OWL は、2 つの重要なセマンティック ウェブ テクノロジーです。 RDF と OWL...