Linux - 在后台运行 Bash 脚本

Linux - 在后台运行 Bash 脚本

要运行这个应用程序,需要一个很长的命令,所以我写了一个脚本“start_myapp.sh”,应用程序就可以正常启动。

#!/bin/sh

LOC="/temp/data/myapp"
JAVA="/bin/java"
$JAVA -Dhome=$LOC -Dsftlogging.configuration=$LOC/myapp.ini -jar $LOC/myapp.jar

如果我关闭终端,它会关闭应用程序。要让应用程序在后台运行,我需要这样做,这也可以正常工作

nohup /global/myfile/scripts/start_myapp.sh &

现在,我想把所有内容都放到脚本中。这样当我运行脚本“start_myapp.sh”时,该脚本将在后台启动应用程序。这是我的脚本,但它不起作用。

如果我运行这个命令

nohup $($JAVA -Dhome=$LOC -Dsftlogging.configuration=$LOC/myapp.ini -jar $LOC/myapp.jar) &

应用程序无法启动

如果我运行这个命令

nohup $JAVA -Dhome=$LOC -Dsftlogging.configuration=$LOC/myapp.ini -jar $LOC/myapp.jar &

应用程序启动了,但日志显示“无效命令”。因此我认为应用程序无法正常启动。

答案1

如果我运行此命令,它会运行良好。

nohup /global/myfile/scripts/start_myapp.sh &

我只是想加入禁止&作为脚本的一部分。这样更方便。但每次我这样做都会失败。如果我在脚本中添加“nohup”和“&”,

nohup $JAVA -Dhome=$LOC -Dsftlogging.configuration=$LOC/myapp.ini -jar $LOC/myapp.jar &

现在如果我运行脚本,

/global/myfile/scripts/start_myapp.sh

应用程序启动了,但在应用程序日志中,我被“无效命令”轰炸了。它只说了这么多,非常模糊。我想这可能是语法错误。

相关内容