【问题标题】:Spring boot App not working after ssh logoutssh注销后Spring Boot App无法正常工作
【发布时间】:2017-08-15 18:54:34
【问题描述】:

所以我将我的 Spring Boot 应用程序部署在 Ubuntu LTS 服务器上。它使用 maven 构建并使用嵌入式 Tomcat 运行。

我对部署过程还很陌生,我所做的是:

  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 后一切正常)

如果有人在这里提供线索会很棒

【问题讨论】:

  • 你家加密了吗?
  • 如果你问我是否使用 SSL,那么是的,我已经在 SSL 和标准 SSL 端口 8443 上配置了应用程序。
  • 没有。我在问您是否已将您的 Ubuntu 配置为加密您要连接的用户的主页。
  • 是的,我有,好点。我将在未加密的目录中尝试一下!
  • 现在似乎可以工作了,非常感谢!

标签: java linux spring maven ssh


【解决方案1】:

如果您的服务器已加密主目录,则在您注销后它将重新加密,因此您的脚本将停止工作。在服务器上加密房屋没有多大意义,因此您可以禁用它。

或者只是从不同的目录运行脚本,避免使用主目录下的文件。

【讨论】:

    【解决方案2】:

    我认为您应该在这种情况下使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-12
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2020-02-09
      • 2019-01-23
      相关资源
      最近更新 更多