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

推薦する

スマートCSSを使用して、ユーザーのスクロール位置に基づいてスタイルを適用します。

現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...

複雑なSQLクエリを含むMySQLの一般的なSQL文の概要

1. 複雑なSQLクエリ1.1. 単一テーブルクエリ(1)指定の列を選択する[例] 全生徒の生徒ID...

ウェブデザイナーもウェブコーディングを学ぶ必要がある

多くの場合、Web デザインが完成した後でデザイナーの無知が露呈し、批判されることがあります。彼らは...

HTML タグ dl dt dd 使用方法

基本構造:コードをコピーコードは次のとおりです。 <ダウンロード> <dt>...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

ウェブ上の模倣と盗作に関する議論

2005年に業界に入ってから数か月後、労働者の日休みの期間中、1か月以上毎日12時まで残業をしました...

ApplicationHost.config (IIS ストレージ構成領域ファイル) の概要

新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...

Windows Server 2016 でサービスを展開する方法 (グラフィック チュートリアル)

導入インストールするシステムの数が多い場合、USB フラッシュ ドライブまたは CD を使用した手動...

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

Tomcat10 Catalinaのログの文字化けの問題を解決する

実行環境、Idea2020バージョン、Tomcat10、実行時にTomcat CatalinaLog...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

Vue.jsは画像切り替え機能を実装する

この記事では、画像切り替え機能を実装するためのVue.jsの具体的なコードを参考までに共有します。具...

初心者でもjsのtypeofとinstanceofの違いを理解できます

目次1. 型2. インスタンス3. 違い1. 型typeof 演算子は、評価されていないオペランドの...

Navicat PremiumでSQLファイルをインポートする方法

今日、最終プロジェクトに取り組み始めましたが、今年はMySQLデータベースを使用したため、Navic...