如何在断开与 shell 的连接后保持 Ubuntu systemctl 进程处于活动状态?

如何在断开与 shell 的连接后保持 Ubuntu systemctl 进程处于活动状态?

我是 Ubuntu 新手,我想运行一个(java maven)命令,在远程 Ubuntu 服务器上运行嵌入我的 Web 应用程序的 Web 服务器。

我可以使用以下 bash 命令(直接输入到远程控制台)运行它:

#!/bin/bash
cd /path/to/mywebapp-dir
mvn exec:java >> /opt/mywebapp.log

我的 Web 应用程序保持活动状态,直到我输入某些键或从控制台注销。

我想在退出后保持它处于活动状态,因此我创建了以下 systemctl 服务:

[Unit]
Description = mywebapp daemon

[Service]
ExecStart = /opt/mywebapp.sh # bash from above
Restart = no
Type = simple # also tried "forking", but couldn't get rid of PID file error.

[Install]
WantedBy = multi-user.target

但是当我启动该服务时,它似乎在 maven 命令成功完成后立即关闭,并且不会使 Web 应用程序(我认为它是一个子进程)保持活动状态。

我怎样才能实现它?

相关内容