1. java コマンドは jar パッケージを開始します
1.1、jarパッケージサービスを直接開始します。
java -jar app.jar
現在の ssh ウィンドウはロックされていません。直接閉じるか、CTRL + C を押してプログラムを中断することができ、プログラムも終了します。
1.2. バックグラウンドでjarパッケージサービスを開始する
java -jar app.jar &
現在の ssh ウィンドウはロックされていませんが、ウィンドウを閉じるとプログラムが中止されます。& はバックグラウンドでの実行を表します。
1.3、バックグラウンドでハングアップせずに開始する
nohup java -jar app.jar &
nohub コマンドを使用して jar パッケージを開始すると、ハングアップすることなくバックグラウンドで実行され、ターミナル ウィンドウを閉じたり、CTRL + C コマンドを押してもプログラムは終了しません。ログ出力ファイルが指定されていない場合、すべての出力は nohub.out ファイルにリダイレクトされます。
1.4、ログ出力開始の指定
nohup java -jar app.jar >log.out &
>log.out コマンドを使用すると、プログラムのログ出力が log.out ファイルにリダイレクトされます。ログ出力ファイルを指定しない場合は、nohub コマンドのデフォルトの出力ファイル nohub.out ファイルに出力されます。
1.5、起動する設定ファイルを指定する
nohup java -jar app.jar -Dspring.profiles.active=prod >log.out &
構成ファイルは -Dspring profiles.active=pro で指定され、application-prod.yml または application-prod.properties が起動されます。
1.6. 設定ファイルを指定し、システムのデフォルトのログ設定を使用し、ログ入力を個別に指定しない
nohup java -jar /opt/app/app.jar -Dspring.profiles.active=prod >/dev/null 2>&1 &
一般的なファイル記述子は次のとおりです。
- 0: stdin (標準入力)
- 1 : stdout (標準出力)
- 2 : stderr (標準エラー)
>
リダイレクトアクションを表します。標準エラーを /dev/null にリダイレクトします。つまり、エラー メッセージは出力されません。
>/dev/null 2>&1 & : 等同于 1>/dev/null 2>&1 &
つまり、標準出力を /dev/null にリダイレクトし、標準エラー 2 を標準出力 1 にリダイレクトします。つまり、標準出力と標準エラーの両方が /dev/null に出力されます。
1.7. 割り当てられるシステムリソースのサイズを指定する
nohup java -Xms1024m -Xmx1024m -jar app.jar -Dspring.profiles.active=prod >log.out &
2.jarパッケージの実行ステータスを監視する
2.1. jar パッケージが実行されているかどうかを確認する
2.1.1、PS 補助ビュー
ps aux | grep app.jar
- a すべてのユーザーのプロセスを表示 (すべてのユーザーのプロセスを表示)
- u 表示ユーザー (プロセスのユーザー/所有者を表示)
- x 制御端末のないプロセスを表示します (端末に接続されていないプロセスも表示します)
2.1.2、ps -ef ビュー
ps -ef |grep app.jar
ps -ef は System V モードで表示され、BSD モードよりも多く表示されます。
- e すべてのユーザープロセスを表示します (すべてのプロセス) このパラメータの効果は、「a」パラメータを指定した場合と同じです。
- f アスキー文字を使ってツリー構造を表示し、プログラム間の関係を表現する(アスキーアートの森)
2.2. Java プロセスを強制終了します。
2.2.1、kill -9 PID
kill -9 进程id
オペレーティング システムは、カーネル レベルからプロセスを強制的に終了します。
2.2.1、kill -15 PID
kill -15 进程id
オペレーティング システムが通知を送信して、アプリケーションをアクティブに閉じるように指示していることがわかります。
kill -15 を使用すると、システムは対応するプログラムに SIGTERM シグナルを送信します。プログラムがシグナルを受信した場合、それをどのように処理するかはプログラム自身が決定します。この時点で、アプリケーションは次のことを選択できます。
- 今すぐプログラムを停止してください
- 応答リソースを解放した後、プログラムを停止します。
- この信号を無視してプログラムの実行を続行します