如何在后台运行程序并获取其PID

Iva*_*van 1 linux java bash minecraft

我有一个 Minecraft 服务器启动脚本,如下所示:

#!/bin/bash
cd "$(dirname "$0")"
exec java -Xmx4096M -Xms4096M -jar minecraft_server.jar
Run Code Online (Sandbox Code Playgroud)

如何在能够将输入输入到 Java 进程的同时获取 Java 进程的 PID?

如果我将 exec 行更改为

exec java -Xmx4096M -Xms4096M -jar minecraft_server.jar & echo $! > pid
Run Code Online (Sandbox Code Playgroud)

它不会让我在 Minecraft 服务器 java 进程中输入任何文本。

Mic*_*ann 5

当您使用 exec 启动 java 进程时,其 PID 将与 shell 脚本之一相同。所以你可以做

echo $$ > pid
exec java ...
Run Code Online (Sandbox Code Playgroud)