大家好,我想要运行一个像Tomcat服务器一样的Java应用程序作为后台进程。为此,我开发了一个应用程序,并将一个类作为主类并从一个脚本文件(startup.sh)中调用。在startup.sh文件中,我调用了一个类,即MainMethodClass。在主方法类中,我编写了我的业务逻辑。当我在Linux服务器上使用Putty运行此应用程序时,只要Putty窗口没有关闭,它就可以正常工作。但是当关闭Putty窗口后,它也会停止工作,但我需要即使在关闭窗口后也能运行此应用程序。我该如何实现这个?
大家好,我想要运行一个像Tomcat服务器一样的Java应用程序作为后台进程。为此,我开发了一个应用程序,并将一个类作为主类并从一个脚本文件(startup.sh)中调用。在startup.sh文件中,我调用了一个类,即MainMethodClass。在主方法类中,我编写了我的业务逻辑。当我在Linux服务器上使用Putty运行此应用程序时,只要Putty窗口没有关闭,它就可以正常工作。但是当关闭Putty窗口后,它也会停止工作,但我需要即使在关闭窗口后也能运行此应用程序。我该如何实现这个?
Nohup命令可以使你运行的进程与当前终端分离,即使你关闭终端,进程也会继续执行。可以像下面这样运行:
nohup java -jar my.jar &
默认情况下,它会将输出导入到nohup.out文件中,如果你不想要这个,你可以尝试:
nohup java -jar my.jar > /dev/null &
nohup <your_application_command> &
您应该能够执行以下操作:
nohup java -jar MyApplication.jar &
在Linux机器上,您可以为您的jar文件(可执行的jar文件,例如spring boot)创建一个服务。
# Set the Application as Service
ln -s $APP_BASE/bin/$APP_NAME.jar /etc/init.d/$APP_NAME
echo "Starting the application as service"
service $APP_NAME start