原创

java -jar blog-admin.jar & 一退出ssh面板就自己关闭了

温馨提示:
本文最后更新于 2023年11月01日,已超过 115 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

当您通过SSH运行一个程序(如 java -jar blog-admin.jar &),然后退出SSH会话时,该程序通常会随之关闭。这是因为当SSH会话结束时,启动的进程(包括那些通过&放入后台的进程)通常会收到一个挂起(SIGHUP)信号,导致它们终止。

为了防止这种情况,您可以使用几种方法来确保程序在SSH会话结束后继续运行:

  1. 使用nohup命令
    nohup命令可以防止运行的程序接收到挂起信号。使用此命令,您的Java程序会忽略挂起信号并继续运行,即使SSH会话已关闭。

    nohup java -jar blog-admin.jar &
    

    这将把程序输出重定向到名为nohup.out的文件。

  2. 使用screentmux
    screentmux是终端复用器,允许您在一个或多个虚拟终端内运行程序。这些程序即使在SSH会话关闭后也会继续运行,并且您可以稍后重新连接到这些会话。

    • 首先安装screentmux(如果还没安装的话)。
    • 使用screentmux启动一个新会话。
    • 在该会话中运行您的Java程序。
    • 断开并退出SSH。以后可以重新连接到相同的screentmux会话以访问程序。
  3. 使用系统服务管理器(如Systemd)
    如果您有足够的权限,可以将您的Java应用程序配置为系统服务。这样,您可以控制它的启动、停止,确保它作为后台服务运行,并且能够在系统重启时自动启动。

根据您的具体需求和服务器配置,选择最适合您的方法。如果您只是偶尔需要在后台运行程序,nohup可能是最简单的解决方案。对于更复杂的长期运行的程序,使用screen/tmux或将程序配置为系统服务可能更合适。

正文到此结束
本文目录