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ミニプログラムの開発をスピードアップするためのヒント

推薦する

アイデアのパッケージ化とクラウドサービスへのアップロードにおけるプロジェクトプロセスの分析

1つ。まず、アイデアとしてパッケージ化する必要があります。私はSpringbootフレームワークプロ...

JavaScript タイピングゲーム

この記事では、タイピングゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...

Linux でのプロセスデーモン スーパーバイザーのインストール、構成、および使用

Supervisor は非常に優れたデーモン管理ツールです。自動起動、ログ出力、自動ログカットなど、...

MySQL での limit の使用方法は何ですか (推奨)

SELECT * FROM テーブル名制限m,n; SELECT * FROM テーブル LIMI...

Reactのコンテキストとプロパティの説明

目次1. 文脈1. 使用シナリオ2. 使用手順3. 結論2. 小道具の詳細1. 子供の財産2. 小道...

Vue プロジェクトで addRoutes を使用する際の問題の解決策

目次序文1. 404 ページ1. 原因2. 解決策2.白い画面を更新する1. 原因2. 解決策3. ...

Webフロントエンドインターフェースの設計に必須のスキル

[必須] ユーザーインターフェースPhotoShop/花火デザインアーティストと協力して、スケッチを...

Debian システムでの自動パッケージ更新の問題を解決する方法

いつから始まったのかはわかりませんが、コンピュータの電源を入れてインターネットに接続するたびに、デー...

MySQL ビューの原理と使用法の詳細な分析

序文: MySQL では、ビューはおそらく最も一般的に使用されるデータベース オブジェクトの 1 つ...

ブートストラップテーブルの使い方のまとめ

この記事では、bootstrapテーブルの使い方を参考までに紹介します。具体的な内容は次のとおりです...

スライダー検証コードを実装するJavaScript

この記事では、スライダー検証コードを実装するためのJavaScriptの具体的なコードを参考までに共...

Javascript DOM、ノード、要素取得の紹介

目次DOMノード要素ノード:テキストノード:プロパティ ノード:要素を取得getElementByI...

サーバー間のファイル バックアップ ソリューション、サーバー ファイルを別のサーバーに自動的にバックアップする方法は?

多くの組織ではファイル サーバーをバックアップする必要があり、あるサーバーから別のファイル サーバー...

デザイン理論:テキスト表現とユーザビリティ

<br />テキストデザインでは、通常、テキストのレイアウト、つまりテキストをより美しく...