[Rd] Help with OS X (BSD) ps command
Jeffrey J. Hallman
jhallman at frb.gov
Fri Feb 2 14:59:30 CET 2007
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.
More information about the R-devel