Bash:如何使用$!虽然进程仍在运行?

时间:2012-06-25 05:06:26

标签: bash

我目前正在启动Java进程,并尝试使用$!获取其PID,并将其写入文件。问题是,当我启动Java进程时,它会进入自己的“控制台”。 (我不确定这叫做什么)。

我无法将此$!写入文件,直到我停止进程并退出其“控制台”,然后PID无用。

我将如何开始Java进程,并在不结束的情况下获取PID? 我正在使用echo $! > pidfile.pid将Java进程的PID写入文件。

1 个答案:

答案 0 :(得分:1)

编写小型Java包装器启动器 java.sh (例如):

#!/bin/bash
pidfile=/some/path/pidfile.pid
echo $$ > $pidfile
exec java $@

简而言之,shell脚本会写出自己的PID,然后将自己替换为java进程,并将所有参数都传递给shell脚本。然后只需在脚本中用 java.sh 替换 java ...当然,您可以通过导出的变量传递 pidfile