0

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

$!在我停止进程并退出其“控制台”之前,我无法将其写入文件,此时 PID 将无用。

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

4

1 回答 1

1

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

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

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

于 2012-07-07T20:35:17.190 回答