【发布时间】:2016-04-19 04:00:37
【问题描述】:
我正在尝试制作一个 bash 脚本来启动一个 jar 文件并在后台执行它。出于这个原因,我使用nohup。现在我可以捕获java进程的pid,但我还需要能够在进程完成时执行命令。
我就是这样开始的
nohup java -jar jarfile.jar & echo $! > conf/pid
我也从this answer 知道,使用; 将使第一个命令完成后执行。
nohup java -jar jarfile.jar; echo "done"
echo "done" 只是一个例子。我现在的问题是我不知道如何将它们结合起来。如果我先运行echo $!,那么echo "done" 会立即执行。如果echo "done" 先行,那么echo $! 将捕获echo "done" 的PID,而不是jarfile 的PID。
我知道我可以通过轮询来实现所需的功能,直到我不再看到 PID 运行。但我想尽可能避免这种情况。
【问题讨论】:
标签: bash shell unix triggers background-process