gpt4 book ai didi

java - 在linux中的另一个用户下运行ProcessBuilder

转载 作者:太空宇宙 更新时间:2023-11-04 14:17:14 25 4
gpt4 key购买 nike

我需要在 Debian 系统下运行另一个 java 应用程序,但我需要在另一个用户下运行它。主要的 java 应用程序在 root 下运行。现在我正在使用它来启动另一个java应用程序,但我需要以另一个用户的身份运行所有这些,这是否可能?

        ProcessBuilder processBuilder = new ProcessBuilder(new String[]{"java", "-Xms256M", "-Xmx" +    DataManager.getMaxMemory(server) + "M", "-XX:MaxPermSize=256M", "-jar", "/home/apps/jar/" + DataManager.getJar(server), "nogui"});
File folder = new File("/home/apps/servers/" + server + "/");
processBuilder.directory(folder);
Process p = processBuilder.start();

谢谢。

最佳答案

已解决:

ProcessBuilder processBuilder = new ProcessBuilder(new String[] { "su", "-
s", "/bin/sh", "myuser", "-c", "java -jar myjar.jar" });,
Process p = processBuilder.start();

此代码将在用户“myuser”下启动“myjar.jar”应用程序。您可以使用unix命令“top”来确认并查看输入的用户进程列表。

关于java - 在linux中的另一个用户下运行ProcessBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27574173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com