On 17/11/2010 21:30, Leon Rosenberg wrote:
> Hi,
>
> I have a ugly issue I'm sure many people on this list already solved.
> For multiple purposes I need pid's of processes, to stop/start them or
> ensure they are running. So far nothing spectacular.
> To obtain the pid I have following util:
>
> String[] cmd = { "/bin/bash", "-c", "echo $PPID" };
> p = Runtime.getRuntime().exec(cmd);
>
> and afterwards read the ppid from the output stream of my process. So
> far - so good.
>
> The problem now occurs if a process has a lot of memory configured.
> Like 25Gb on a 32Gb machine. In such a configuration the above command
> fails with an OS'es out of memory, because fork
> fails to create another process with THAT amount of memory:
>
> 1598388 2010-11-17 02:54:47,061 ERROR net.anotheria.util.PidTools -
> Could not determine PID: java.io.IOException: Cannot run program
> "/bin/bash": java.io.IOException: error=12, Cannot allocate memory
>
> Is there another method to obtain the process id from within the process?I'm not sure I entirely understand the context, but if it's a Java 5+ process: ManagementFactory.getRuntimeMXBean().getName() will return <pid>@<hostname>. Are you trying to determine the PID of a new process, or the current one? p > > regards > Leon > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] >
0x62590808.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
