Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Dec 1998 13:51:01 +0100
From:      Marcel Moolenaar <marcel@scc.nl>
To:        Greg Lehey <grog@lemis.com>
Cc:        freebsd-emulation@FreeBSD.ORG
Subject:   Re: linux ps(1) for FreeBSD
Message-ID:  <3688D035.48F8542B@scc.nl>
References:  <3688B050.B0E97AA9@scc.nl> <19981229212208.V32696@freebie.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Greg Lehey wrote:
> Do you have more details?

for example:

The Web Request Broker (WRB) is started by:
	owsctl start wrb

The owsctl script eventually executes wrbctl.
wrbctl starts a number of processes, of which mnaddrsrv is the first.
When mnaddrsrv is launched, wrbctl executes:

	sh -c (/bin/ps pw 22708 2>/dev/null| grep mnaddrsr)

sh in this case is a linux binary (bash), so /bin/ps is in fact
/compat/linux/bin/ps.
/compat/linux/bin/ps is a script I made to debug OAS:

#!/bin/sh
echo $* > /tmp/ps.args

if [ "x$1" = "xpw" ]; then
  shift
  /bin/ps -ww -p $*
else
  /bin/ps -wwx
fi

grep reads on stdin:
 22712 grep     GIO   fd 0 read 93 bytes
       "  PID  TT  STAT      TIME COMMAND
        22708  ??  Ss     0:00.07 /oracle/ows/3.0/bin/mnaddrsrv -D
       "

wrbctl reads on the pipe:
 22700 wrbctl   GIO   fd 4 read 59 bytes
       "22708  ??  Ss     0:00.07 /oracle/ows/3.0/bin/mnaddrsrv -D
       "

wrbctl now knows the process is running and records the pid in a file.
Multiple WRB instances can be started concurrently, so mnaddrsrv can be
running more than once. By using the recorded pid and ps|grep, wrbctl can
monitor the status of each instance.


The admin web server is started by:

	owsctl start admin

owsctl start wrbctl again. wrbctl now reads a couple of config files and runs
(I think):

	sh -c (ps efw | grep wrbdm)

... For some reason oraweb is still started and blocks on
linux_socketcall(LINUX_SENDMSG,...), possibly awaiting the creation of some
other process, which wasn't created in the time I ate my lunch.

marcel

ps: linux_socketcall(LINUX_SENDMSG, ...) and linux_socketcall(LINUX_RECVMSG,
...) aren't implemented. I'm running my own patches. See PR 9232.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3688D035.48F8542B>