[Rd] Help with OS X (BSD) ps command
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Feb 2 15:36:36 CET 2007
Most systems do not have pgrep: it is not POSIX. From Linux:
pkill and pgrep were introduced in Sun's Solaris 7. This implementation is fully
The man pages of Darwin and many other systems are online, and linked from
developer.r-project.org. You could do what the R developers do, and look
However, you seem not to have looked on your own system, as my Linux 'ps'
man page tells me the BSD syntax, and I can test it on Linux's 'ps'. I
guess you want 'ps ux'.
On Fri, 2 Feb 2007, Jeffrey J. Hallman wrote:
> My fame package has a function that checks to see if a FAME SERVER process is
> already running. On Linux, I can do this in one of two ways:
> pid <- Sys.getpid()
> user <- Sys.info()["user"]
> cmd <- paste("pgrep -fU", user, "-P", pid, "'FAME SERVER'")
> fameRunning <- as.logical(length(system(cmd, intern = T)))
> or I can use
> cmd <- paste("ps -ef | grep", user, "| grep", pid,
> "| grep -v grep | grep -c 'FAME SERVER'")
> fameRunning <- as.logical(as.numeric(system(cmd, intern = T)))
> Mac OS X does not have pgrep, and being a BSD derivative, takes different
> arguments for the 'ps' command. I don't have access to a BSD machine. Can
> someone who does tell me the correct invocation of 'ps' to see if 'user' is
> running a 'FAME SERVER' process with the R process as its parent process?
> Please don't tell me how to get pgrep for OS X, as my objective here is to
> stop the CRAN test machine from complaining about my invalid ps command.
> While FAME is not officially supported on OS X, I am told that it can be made
> to work there. Had I not heard this, of course, I could just answer FALSE for
> OS X and be done with it.
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel