我正在从 Kotlin 启动一个 bash 脚本,但是一旦 Kotlin 应用程序退出,bash 脚本就会停止运行。
val pr = ProcessBuilder("/home/vlad/liq", script, input).start()
其中 script 是 Liquidsoap 脚本,而 input 是传递给脚本的参数
通常,它会运行如下内容:
./liq blah.liq http://somedomain.com:8090
liq然后执行作为第一个参数的液体肥皂脚本,然后将第二个参数用作液体肥皂脚本的参数。
#!/bin/bash
nohup /usr/bin/liquidsoap $1 -- $2 > /dev/null 2>&1 &
# this causes syntax error
# nohup (/usr/bin/liquidsoap $1 -- $2 > /dev/null 2>&1 &)
这个 Kotlin 应用程序通过运行java -jar dashboard.jar,当应用程序运行时,liquidsoap 脚本正在运行,只要我使用 Ctrl + C 退出 Kotlin 应用程序,liquidsoap 脚本也会停止。
我的印象是nohup+&会产生一个新的控制台,从而即使在 Kotlin 应用程序退出后也能保持脚本运行,但事实并非如此。
即使在我的 Kotlin 应用程序退出后如何保持脚本运行的任何想法?