如何保持后端服务持续运行?首次部署操作流程确认
后端服务部署操作的可行性解答
你的步骤理论上能临时启动服务,但存在致命缺陷,具体说明如下:
- SSH登录服务器:这是远程操作服务器的标准流程,完全没问题。
- 直接执行
java -jar backend.jar &放后台:这种方式下,进程属于当前SSH会话的子进程,当你关闭SSH连接时,系统会给该进程发送SIGHUP信号,导致服务直接终止。 - 关闭SSH连接:如上述所说,直接这么操作会导致服务停止,所以这套流程根本不可靠。
靠谱的替代方案
临时测试用:nohup命令
执行以下命令让进程脱离会话控制:
nohup java -jar backend.jar > backend.log 2>&1 &
nohup:让进程忽略SIGHUP信号,断开SSH后不会被终止> backend.log 2>&1:将标准输出和错误输出都写入日志文件,方便后续排查问题- 最后的
&:让进程在后台运行
生产环境推荐:systemd进程管理
这是Linux系统的标准服务管理方式,能实现服务自动重启、开机自启等功能:
- 创建服务配置文件
/etc/systemd/system/backend.service,写入内容:[Unit] Description=Backend Service After=network.target [Service] User=your_username # 替换为实际运行服务的用户 ExecStart=/usr/bin/java -jar /path/to/backend.jar # 替换为jar包的实际路径 Restart=always # 服务崩溃后自动重启 RestartSec=5 # 重启间隔5秒 [Install] WantedBy=multi-user.target - 执行以下命令完成配置:
sudo systemctl daemon-reload sudo systemctl start backend sudo systemctl enable backend # 设置开机自启 - 后续管理命令:
- 查看服务状态:
sudo systemctl status backend - 停止服务:
sudo systemctl stop backend - 重启服务:
sudo systemctl restart backend
- 查看服务状态:
内容的提问来源于stack exchange,提问作者ilovecodingthisis_cool
相关产品推荐
相关产品推荐

