1

有没有办法通过Java中的Process Builder创建一个进程,父ID为1,unix用户是除root用户之外的任何其他unix用户。我正在用 java 开发一个应用程序(将以 root 用户身份运行),它将启动、停止和监视 unix 操作系统中的进程。我在 java 中使用 Process Builder 在启动操作期间创建进程。默认情况下,进程父 ID 是我的应用程序的进程 ID。我需要将这些已启动进程的父进程 ID 设为 init 进程(ppid = 1)。因为万一我的应用程序崩溃或停止,我的应用程序启动的这些进程仍然存在(即不要停止)。因为在当前情况下,当这些进程的 ppid 是我的应用程序的进程 ID 时,当我的应用程序关闭时,这些进程也会自动终止。

我在这里添加了两个我观察到的关于此行为的案例:这里有两个案例:1)首先是当我使用 root 用户运行我的应用程序,然后使用 java 中的进程构建器创建子进程时,在这种情况下子进程将占用ppid 作为我的应用程序 ID,但是当我杀死我的应用程序时,子进程的 ppid 变为 1(init 进程)但子进程由 root 用户运行(我不希望它应该在另一个 Unix 用户下运行)。

2)在情况2中,当我由除root用户之外的另一个Unix用户运行我的应用程序时,当我杀死我的应用程序时,子进程也会被杀死。

但我需要与第一种情况相同的行为,即它应该继续以 ppid 1 运行,但应该在我的 Unix 用户(而不是 root 用户)下运行。

4

0 回答 0