我创建了一个 .jar 文件,它侦听端口 8089 并接收发布请求。我使用以下命令在我的 Linux 机器上在后台启动它:
nohup java -jar myServer.jar &
[1] 19769
-bash-4.1$ nohup: ignoring input and appending output to `nohup.out'
jobs
[1]+ Running nohup java -jar myServer.jar &
disown
同时使用 nohup 和 disown 可能是多余的,但我的理解是,这应该有效地在后台运行进程并将其与终端分离。当我注销 SSH 并重新登录时,它仍在侦听:
tcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN 19769/java
现在我注销并尝试发送发布请求。我收到无响应错误,当我重新登录时,该进程不再运行。不知何故,在未登录的情况下发送发布请求会导致进程崩溃。我错过了什么?
编辑:响应 @vastlysuperiorman 的第一条评论,应该注意的是,我的 nohup.out 文件不包含任何错误,并且当我在登录服务器时从curl 启动发布请求时,它会按预期返回数据。