How to know the childs PID of a given process?

Hi, I know that a Ruby process with PID 1000 (under Linux) has forked 4
times.
How could I know the PID of those childs from any other ruby
interpreter?
This is, I just know the PID of the parent (1000).

Of course I could do some hack as inspecting the output of “ps” and
inspecting
the pid/ppid, but I’d prfer a ppure Ruby method for this.

Thanks for any suggestion.

On 01/04/2010 11:52 AM, Iñaki Baz C. wrote:

Hi, I know that a Ruby process with PID 1000 (under Linux) has forked 4 times.
How could I know the PID of those childs from any other ruby interpreter?
This is, I just know the PID of the parent (1000).

Of course I could do some hack as inspecting the output of “ps” and inspecting
the pid/ppid, but I’d prfer a ppure Ruby method for this.

Thanks for any suggestion.

The typical approach is that the forking parent records PIDs of its
children. If that information needs to be propagated you can either
write it to a file or make it available via DRb.

If you need multiple Ruby processes to collaborate I would probably turn
to DRb anyway. In that case you might not even need to record PIDs but
you could have a coordinator where processes register and unregister or
which starts processes itself. It depends on your use case.

Kind regards

robert

El Lunes, 4 de Enero de 2010, Robert K.
escribió:> The typical approach is that the forking parent records PIDs of its

children. If that information needs to be propagated you can either
write it to a file or make it available via DRb.

If you need multiple Ruby processes to collaborate I would probably turn
to DRb anyway. In that case you might not even need to record PIDs but
you could have a coordinator where processes register and unregister or
which starts processes itself. It depends on your use case.

Thanks a lot. The fact is that I’d like not to modify the program whose
processes I want to monitor, so I was looking for something as “ps”.

Thanks a lot.

On Jan 4, 7:21 am, Iñaki Baz C. [email protected] wrote:

Thanks a lot. The fact is that I’d like not to modify the program whose
processes I want to monitor, so I was looking for something as “ps”.

Regards,

Dan

El Lunes, 4 de Enero de 2010, Daniel B.
escribió:

GitHub - djberg96/sys-proctable: A cross-platform Ruby interface for gathering process information on your operating system

There is a typo in the README:

gem install sys-proctalbe --platform linux # Linux

(note “proctalbe”) :wink:

El Lunes, 4 de Enero de 2010, Daniel B.
escribió:> > >

Thanks a lot. The fact is that I’d like not to modify the program whose
processes I want to monitor, so I was looking for something as “ps”.

GitHub - djberg96/sys-proctable: A cross-platform Ruby interface for gathering process information on your operating system

Really interesting, thanks a lot!