我目前正在启动Java进程,并尝试使用$!
获取其PID,并将其写入文件。问题是,当我启动Java进程时,它会进入自己的“控制台”。 (我不确定这叫做什么)。
我无法将此$!
写入文件,直到我停止进程并退出其“控制台”,然后PID无用。
我将如何开始Java进程,并在不结束的情况下获取PID?
我正在使用echo $! > pidfile.pid
将Java进程的PID写入文件。
答案 0 :(得分:1)
编写小型Java包装器启动器 java.sh (例如):
#!/bin/bash
pidfile=/some/path/pidfile.pid
echo $$ > $pidfile
exec java $@
简而言之,shell脚本会写出自己的PID,然后将自己替换为java进程,并将所有参数都传递给shell脚本。然后只需在脚本中用 java.sh 替换 java ...当然,您可以通过导出的变量传递 pidfile 。