在 Linux 中,哪个用户使用 java 中的进程启动?

Which user is started with a process in java in LinuxI?

我正在尝试通过 processBuilder Java 无头地启动 chrome,这是我的代码:

pb = new ProcessBuilder(CHROME_UBUNTU_PATH, "--headless","--enable-logging", "--disable-gpu","--print-to-pdf=" + filePath + ".pdf","file:///" + absolutePath);
pb.start();

但是 chrome 不会启动,因为它是 运行 用户 root :

Running as root without --no-sandbox is not supported.

所以我想知道启动进程的用户是什么,在这种情况下我应该怎么做?

简单:运行 编写此代码并尝试启动 chrome 的过程是由 root 用户 运行 完成的。因此,新进程在同一用户下进行 root.

这就像是您想做的最后一件事:您希望 运行 尽可能少地为 root 用户提供工作。

换句话说:解决方案是查看您的设置并确保您绝对启动任何进程root 你自己。 (也许在您必须这样做的情况下会有例外,但同样:这应该是绝对的例外,并且只有在别无选择的情况下才会发生)。