Getting pid of a remote process

Miles semanticist at
Tue Aug 19 15:25:06 CEST 2008

On Mon, Aug 18, 2008 at 9:34 AM, srinivasan srinivas wrote:
> Could you please suggest me a way to find pid of a process started on a remote machine by the current process??

If ps + grep (or the more robust tool pgrep) won't work because you're
running more than one instance at once, try this: instead of running
the process via SSH directly, write a small wrapper script which runs
the process locally and saves the PID to a file on the machine (or
prints it to stdout if the program itself has no output), and then run
that wrapper remotely.

For example:

import subprocess, sys
f = open(sys.argv[1], 'w')
p = subprocess.Popen(sys.argv[2:])
print >>f,

You may have to be careful with the quoting of the arguments, since
OpenSSH uses a shell to execute the command.  You could then obtain
the pid with something along the lines of:

int(subprocess.Popen(['ssh', <hostname>, 'cat', <pidfile>],


More information about the Python-list mailing list