2017-08-15 70 views
2

所以我在Ubuntu LTS服務器上部署我的Spring Boot應用程序。它使用maven構建,並使用嵌入式Tomcat運行。彈出啓動應用程序ssh註銷後不工作

我還是新部署過程,我所做的就是:

  1. 登錄到服務器通過SSH
  2. 使用scp上傳my_application.zip
  3. 其解壓到SSH
  4. java -jar my_application.jar

現在所有這些工作都非常好,我一直在使用它,這樣安靜一段時間。現在我必須讓應用程序在註銷shell後保持聯機並可用。

我已經閱讀了一些關於在Linux上運行進程的背景知識,我試過用nohup java -jar myApplication.jar &screen命令和bg。當我登錄到ssh時,它們都運行良好。當我結束SSH會話的Web應用程序仍然是可用的(所以這個過程顯然沒有停止),但它只是看起來&行爲很古怪

這纔是我的問題。 CSS不適用,JS不起作用等。

我的猜測是某些路徑或文件系統訪問會搞砸,但我根本不知道如何來自ssh會話。

(當我重新登錄SSH一切又做工精細)

將是巨大的,如果有人在這裏的線索

+0

你有加密的家嗎? – Jakuje

+0

如果你問我是否使用SSL,那麼是的,我已經在SSL和標準SSL端口8443上配置了應用程序。 –

+1

我問你是否已將Ubuntu配置爲加密連接到的用戶的家。 – Jakuje

回答

1

如果您的服務器已加密主目錄,則在您註銷後它將重新加密,因此腳本將停止工作。在服務器上加密家庭沒有多大意義,所以你可以禁用它。

或者只是從不同目錄運行腳本,並避免使用主目錄下的文件。

0

我認爲你應該使用systemd這種情況。 也可以爲您的應用程序添加新的系統用戶。 您可以在這裏找到更多的信息:

Spring Boot: 59.2.2 Installation as a systemd service

Ubuntu Wiki: Systemd For UpstartUsers

例如: 創建文件myunit.service

[Unit] 
Description=MySpringService 
After=syslog.target 
After=network.target 
After=mysql.service 

[Service] 
Type=forking 
PIDFile=/work/www/myunit/shared/tmp/pids/service.pid 
WorkingDirectory=/work/www/myunit/current 

User=myunit 
Group=myunit 

Environment=RACK_ENV=production 

OOMScoreAdjust=-1000 

ExecStart=/usr/local/bin/bundle exec service -C /work/www/myunit/shared/config/service.rb --daemon 
ExecStop=/usr/local/bin/bundle exec service -S /work/www/myunit/shared/tmp/pids/service.state stop 
ExecReload=/usr/local/bin/bundle exec service -S /work/www/myunit/shared/tmp/pids/service.state restart 
TimeoutSec=300 

[Install] 
WantedBy=multi-user.target 

將文件複製到/etc/systemd/system/ 運行: systemctl enable myunit systemctl start myunit

相關問題