用于启动新进程但关闭终端窗口的 Shell 脚本

Vam*_*ani 5 scripts

我是 shell 脚本的新手。我正在编写一个启动脚本,它接受一个参数并根据参数值启动一个进程。

示例:我想使用这样的启动脚本启动位于某个目录中的 groovyConsole。

sh Starter.sh groovy 
Run Code Online (Sandbox Code Playgroud)

在脚本内部,这是逻辑

if [ $1 = "groovy" ] 
then
    cd Works/Groovy/groovy-1.8.6/bin
    ./groovyConsole
fi
Run Code Online (Sandbox Code Playgroud)

这确实启动了该过程,但我看到该过程与终端窗口绑定。如果我关闭终端窗口,进程就会被杀死(显然)。所以我想知道是否有办法运行上述命令将执行脚本并启动进程但关闭终端窗口?

Rin*_*ind 6

您可以使用nohup和将其从当前进程中分离出来&

如果 [ $1 = "groovy" ] 
然后
    cd Works/Groovy/groovy-1.8.6/bin
    nohup ./groovyConsole & 
菲

这将使命令 groovyConsole 一直运行,直到您将其杀死。这不会关闭终端窗口,尽管你这样做......

sh Starter.sh groovy && exit
Run Code Online (Sandbox Code Playgroud)