簡體   English   中英

如何在 Linux (Centos 7) shell 上在后台正確運行 Spring Boot Batch 應用程序?

[英]How can I correctly run in background a Spring Boot Batch application on a Linux (Centos 7) shell?

我必須在 Linux 機器 (Centos 7) 上運行 Java Spring Boot 應用程序。 我正在通過 SSH 連接到 shell。此應用程序采用jar格式並實現批處理應用程序並包含其調度程序。

我必須在遠程服務器的后台運行它,以便之后我退出 shell 它仍在運行。

我執行了此命令以便在后台運行我的應用程序:

java -Xms256m -Xmx1024m -jar UpdateInfoBatch-0.0.1-SNAPSHOT.jar &

然后我在鍵盤上單擊CTRL+C以再次獲得 shell 上的鍵盤提示。

這是第一個奇怪的行為:我再次獲得 shell 提示和插入命令的可能性,但是如果應用程序記錄它出現在 shell 上的內容。為什么? 我希望我的應用程序仍在后台運行。

無論如何,我現在在我的 shell 中提示這個命令,以檢查我的應用程序是否正在運行:

xxx@xxx.yyy.it [~/zzz-import-data-batch]# ps aux | grep java xxx 23307 15.3 1.6 4871172 418980 pts/0 Sl 10:23 0:22 java -Xms256m -Xmx1024m -jar UpdateInfoBatch-0.0.1-SNAPSHOT.jar webadmin 23522 0.0 0.0 112812 980 pts/0 S+ 10:25 0:00 grep --color=自動 java

是的,我的應用程序似乎可以正確運行(第一個)。

然后我關閉與我的 shell 的連接,我再次登錄並再次執行之前的命令,但現在我得到了這個:

xxx@xxx.spaccount.it [~/zzz-導入數據批]# ps aux | grep java xxx 23919 0.0 0.0 112812 980 點/0 S+ 10:27 0:00 grep --color=auto java

如您所見,之后我與 shell 斷開連接,當我重新登錄時,我的批處理應用程序似乎沒有運行(實際上我的工作應用程序沒有運行)。

怎么了? 我錯過了什么? 在后台運行我的 java jar 批處理應用程序的好方法是什么?

通常你會想要重定向 output,你可以使用 nohup 命令將其生成到后台。 如果您不關心捕獲 stdout 或 stderr,您可以將它們定向到 /dev/null

nohup java -Xms256m -Xmx1024m -jar UpdateInfoBatch-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM