java - Spring Boot 应用程序无法使用 SSH 启动

标签 java spring bash ssh deployment

我有一个 Spring 应用程序,它可以在临时服务器和产品服务器上愉快地运行。是时候自动化部署了。

我的临时服务器上有一个 restart.sh 脚本。如果我 ssh 进入服务器并以用户身份运行它,一切都会按预期进行。

运行命令:nohup ./restart.sh

# restart.sh
kill  $(ps -aux | grep plenti-app | grep java | awk '{print $2}')
java -jar -Dspring.profiles.active=staging plenti-app

但是,当我尝试通过 ssh 运行命令时,它失败并提示我的数据库密码验证失败。

ssh user@$STAGING_IP“./restart.sh”

org.postgresql.util.PSQLException: FATAL: password authentication failed for user "gszbybjk"
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:520) ~[postgresql-42.2.9.jar!/:42.2.9]

我首先怀疑这可能与环境变量有关,因为这就是我存储数据库凭据的方式,但 ssh 调用 ssh user@ip echo $DB_PASSWORD 会产生预期值。

最佳答案

事实证明,我的处理方式是错误的。有一个完整的子系统专门用于启动服务应用程序,称为 systemd

这里有几个链接可以帮助 future 的旅行者入门

关于java - Spring Boot 应用程序无法使用 SSH 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696507/

相关文章:

java - 使用数组编号计算后给出错误答案

使用 Objectify 和 Appengine 进行 Spring 事务

java - Spring 启动: how to show actual classpath on startup or at runtime?

Spring @Transactional 在 JUnit 测试中不起作用?

linux - 重命名文件并删除 shell PID 作为扩展名

bash - 将十六进制转换为二进制并通过网络发送

bash - 如何在 bash 中进行二进制加法

java - 将 RGB 值转换为整数

java - sqlite 安卓 : table not found

Java:使用 Bouncy CaSTLe 进行 PGP 加密