From: Roberto João Lopes Garcia <roberto@mha.com.br>
To: Bruce Momjian <pgman@candle.pha.pa.us>
Cc: pgsql-interfaces@postgresql.org
Subject: Re: pgmonitor on solaris
Date: Mon, 26 Mar 2001 16:32:17 -0300
Message-ID: <5.0.2.1.0.20010326153208.00a79200@ftp.mha.com.br> (raw)
In-Reply-To: <200103261709.MAA17936@candle.pha.pa.us>
References: <08CD1781F85AD4118E0800A0C9B8580B0949D6@NEZU>
Ok +/-
On Solaris 2.5.1 - Pgmonitor 0.28
No message errors, the pgmonitor window comes up but does not show any
proccess. I started psql and make a query that runs a litle long (select
nm_arq from cd_arqs order by nm_arq), select refresh on pgmonitor and show
nothing.
Again, I changed the path to ps from /bin/ps to /usr/ucb/ps and it print
the following errors:
# ./pgmonitor
Error in startup script: Can't run 'ps'
Please send in a patch.
while executing
"error "Can't run 'ps'\nPlease send in a patch.""
(procedure "widget_init" line 62)
invoked from within
"widget_init $argc $argv .top"
(procedure "main" line 2)
invoked from within
"main $argc $argv"
(file "./pgmonitor" line 833)
#
From the man /usr/ucb/ps there is no argument to display proccess for a
expecific user U or u so I think can't be used.
From the man /bin/ps: -f long format,
-U user name list,
-u user ID list,
-e all proccess,
-p proc list
I changed same pgmonitor ps_???_args but I could not fix it. Still not
showing proccess.
Please see the atached man pages
Thank You
Roberto
The problem know, I think is the ps command
At 14:09 26/03/01, Bruce Momjian wrote:
>[ Charset ISO-8859-1 unsupported, converting... ]
> > The problem is that Solaris uses the "original" version of Awk by default
> > (apparently nobody knows why).
> > This version lacks many features which have been available in later
> versions
> > for approximately forever (in computing chronology :-)).
> > Two other versions exist on Solaris:
> > * "nawk" ("new awk", i.e. the updated "old awk")
> > * /usr/xpg4/bin/awk (another, posix-compliant awk).
> > Solaris seems to be weird this way. Other platforms don't seem to have
> this
> > problem. Linux and FreeBSD, for example, use GNU awk, which would have all
> > of the required functionality and more.
>
>OK, I have confirmed you are correct. I find at:
>
> http://www.oase-shareware.org/shell/articles/awkcompat.html
>
>a chart comparing awk versions on different OS's and it shows gsub() not
>supported on Solaris, Solaris 2.5,2.6,5.7,5.8 (sparc), /usr/5bin/awk.
>nawk does have it.
>
>I have put a 0.28 version of pgmonitor on my web site that tests for
>awk/nawk/gawk and gsub(), and uses the one that works. Can someone test
>this on Solaris and let me know if it is OK?
>
>pgmonitor README attached:
>
>---------------------------------------------------------------------------
>
> P G M O N I T O R
>
>pgmonitor, version 0.28
>
>The main web site for pgmonitor is:
> http://greatbridge.org/project/pgmonitor/projdisplay.php
>
>You can download the most recent version from
> ftp://ftp.greatbridge.org/pub/pgmonitor
>
>This tool allows monitoring of PostgreSQL activity. It requires Tcl/Tk
>8.0 or later. It may require modification of the 'ps' flags for certain
>platforms. It is known to run on *BSD, Linux, and HPUX.
>
>Pgmonitor only works when run on the database server machine. To use it
>remotely, log into the remote machine, set the DISPLAY variable to point
>to your local X server, and start pgmonitor. Pgmonitor will then run on
>the remote machine, but will display on your local machine.
>
>Pgmonitor uses 'ps' to display backend process activity. It uses 'gdb'
>to display running queries, and 'kill' to cancel queries and terminate
>database connections.
>
>Pgmonitor stores your most recent refresh and sort settings in the file
>~/.pgmonitor. This file is used to reload your defaults every time
>pgmonitor is started.
>
>If you are running PostgreSQL 7.1.0 or earlier, the 'query' button will
>not work unless you compile PostgreSQL with debug symbols (-g), or apply
>the supplied patch 'query_display.diff' and recompile PostgreSQL. The
>later method is recommended.
>
>Bruce Momjian <pgman@candle.pha.pa.us>
>
>--
> Bruce Momjian | http://candle.pha.pa.us
> pgman@candle.pha.pa.us | (610) 853-3000
> + If your life is a hard drive, | 830 Blythe Avenue
> + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Attachments:bin_ps.txt (text/plain, 20.3K) download
# man ps
Reformatting page. Wait... done
ps(1) User Commands ps(1)
NAME
ps - report process status
SYNOPSIS
ps [ -aAcdefjl ] [ -g grplist ] [ -n namelist ]
[[ -o format ] ... ] [ -p proclist ]
[ -s sidlist ] [ -t term ] [ -u uidlist ]
[ -U uidlist ] [ -G gidlist ]
AVAILABILITY
SUNWcsu
DESCRIPTION
The ps command prints information about active processes.
Without options, ps prints information about processes asso-
ciated with the controlling terminal. The output contains
only the process ID, terminal identifier, cumulative execu-
tion time, and the command name. Otherwise, the information
that is displayed is controlled by the options.
Some options accept lists as arguments. Items in a list can
be either separated by commas or else enclosed in quotes and
separated by commas or spaces. Values for proclist and
grplist must be numeric.
OPTIONS
The following options are supported:
-a Print information about all processes most
frequently requested: all those except pro-
cess group leaders and processes not associ-
ated with a terminal.
-A Write information for all processes.
-c Print information in a format that reflects
scheduler properties as described in
priocntl(1). The -c option affects the out-
put of the -f and -l options, as described
below.
-d Print information about all processes except
session leaders.
-e Print information about every process now
running.
-f Generate a full listing. (See below for sig-
nificance of columns in a full listing.)
-g grplist List only process data whose group leader's
ID number(s) appears in grplist. (A group
SunOS 5.5 Last change: 28 Feb 1995 1
ps(1) User Commands ps(1)
leader is a process whose process ID number
is identical to its process group ID number.)
-G gidlist Write information for processes whose real
group ID numbers are given in grouplist. The
grouplist must be a single argument in the
form of a blank- or comma-separated list.
-j Print session ID and process group ID.
-l Generate a long listing. (See below.)
-n namelist Specify the name of an alternative system
namelist file in place of the default. This
option is accepted for compatibility, but is
ignored.
-o format Write information according to the format
specification given in format. This is fully
described in DISPLAY FORMATS. Multiple -o
options can be specified; the format specifi-
cation will be interpreted as the space-
character-separated concatenation of all the
format option-arguments.
-p proclist List only process data whose process ID
numbers are given in proclist.
-s sidlist List information on all session leaders whose
IDs appear in sidlist.
-t term List only process data associated with term.
Terminal identifiers are specified as a dev-
ice file name, and an identifier. For exam-
ple, term/a, or pts/0.
-u uidlist List only process data whose effective user
ID number or login name is given in uidlist.
In the listing, the numerical user ID will be
printed unless you give the -f option, which
prints the login name.
-U uidlist Write information for processes whose real
user ID numbers or login names are given in
userlist. The userlist must be a single
argument in the form of a blank- or comma-
separated list.
With the exception of -o format, all of the options shown
are used to select processes. If any are specified, the
default list will be ignored and ps will select the
processes represented by the inclusive OR of all the
SunOS 5.5 Last change: 28 Feb 1995 2
ps(1) User Commands ps(1)
selection-criteria options.
DISPLAY FORMATS
Under the -f option, ps tries to determine the command name
and arguments given when the process was created by examin-
ing the user block. Failing this, the command name is
printed, as it would have appeared without the -f option, in
square brackets.
The column headings and the meaning of the columns in a ps
listing are given below; the letters f and l indicate the
option (full or long, respectively) that causes the
corresponding heading to appear; all means that the heading
always appears. Note: These two options determine only
what information is provided for a process; they do not
determine which processes will be listed.
F (l) Flags (hexadecimal and additive) associ-
ated with the process. These flags are
available for historical purposes; no
meaning should be currently ascribed to
them.
S (l) The state of the process:
O Process is running on a processor.
S Sleeping: process is waiting for an
event to complete.
R Runnable: process is on run queue.
Z Zombie state: process terminated
and parent not waiting.
T Process is stopped, either by a job
control signal or because it is
being traced.
UID (f,l) The effective user ID number of the pro-
cess (the login name is printed under
the -f option).
PID (all) The process ID of the process (this
datum is necessary in order to kill a
process).
PPID (f,l) The process ID of the parent process.
C (f,l) Processor utilization for scheduling
(obsolete). Not printed when the -c
option is used.
CLS (f,l) Scheduling class. Printed only when the
-c option is used.
SunOS 5.5 Last change: 28 Feb 1995 3
ps(1) User Commands ps(1)
PRI (l) The priority of the process. Without
the -c option, higher numbers mean lower
priority. With the -c option, higher
numbers mean higher priority.
NI (l) Nice value, used in priority computa-
tion. Not printed when the -c option is
used. Only processes in the certain
scheduling classes have a nice value.
ADDR (l) The memory address of the process.
SZ (l) The size (in pages) of the swappable
process's image in main memory.
WCHAN (l) The address of an event for which the
process is sleeping (if blank, the pro-
cess is running).
STIME (f) The starting time of the process, given
in hours, minutes, and seconds. (A pro-
cess begun more than twenty-four hours
before the ps inquiry is executed is
given in months and days.)
TTY (all) The controlling terminal for the process
(the message, ?, is printed when there
is no controlling terminal).
TIME (all) The cumulative execution time for the
process.
CMD (all) The command name (the full command name
and its arguments, up to a limit of 80
characters, are printed under the -f
option).
The following two additional columns are printed when the -j
option is specified:
PGID The process ID of the process group
leader.
SID The process ID of the session leader.
A process that has exited and has a parent, but has not yet
been waited for by the parent, is marked <defunct>.
-o format
The -o option allows the output format to be specified under
user control.
SunOS 5.5 Last change: 28 Feb 1995 4
ps(1) User Commands ps(1)
The format specification must be a list of names presented
as a single argument, blank- or comma-separated. Each vari-
able has a default header. The default header can be over-
ridden by appending an equals sign and the new text of the
header. The rest of the characters in the argument will be
used as the header text. The fields specified will be writ-
ten in the order specified on the command line, and should
be arranged in columns in the output. The field widths will
be selected by the system to be at least as wide as the
header text (default or overridden value). If the header
text is null, such as -o user=, the field width will be at
least as wide as the default header text. If all header
text fields are null, no header line will be written.
The following names are recognised in the POSIX locale:
user The effective user ID of the process. This will
be the textual user ID, if it can be obtained
and the field width permits, or a decimal
representation otherwise.
ruser The real user ID of the process. This will be
the textual user ID, if it can be obtained and
the field width permits, or a decimal represen-
tation otherwise.
group The effective group ID of the process. This
will be the textual group ID, if it can be
obtained and the field width permits, or a
decimal representation otherwise.
rgroup The real group ID of the process. This will be
the textual group ID, if it can be obtained and
the field width permits, or a decimal represen-
tation otherwise.
pid The decimal value of the process ID.
ppid The decimal value of the parent process ID.
pgid The decimal value of the process group ID.
pcpu The ratio of CPU time used recently to CPU time
available in the same period, expressed as a
percentage. The meaning of ``recently'' in this
context is unspecified. The CPU time available
is determined in an unspecified manner.
vsz The size of the process in (virtual) memory in
kilobytes as a decimal integer.
nice The decimal value of the system scheduling
SunOS 5.5 Last change: 28 Feb 1995 5
ps(1) User Commands ps(1)
priority of the process. See nice(1).
etime In the POSIX locale, the elapsed time since the
process was started, in the form:
[[dd-]hh:]mm:ss
where
dd will represent the number of days,
hh the number of hours,
mm the number of minutes, and
ss the number of seconds. The
dd field will be a decimal integer.
The hh, mm and ss fields will be two-digit
decimal integers padded on the left with zeros.
time In the POSIX locale, the cumulative CPU time of
the process in the form:
[dd-]hh:mm:ss
The dd, hh, mm, and ss fields will be as
described in the etime specifier.
tty The name of the controlling terminal of the pro-
cess (if any) in the same format used by the
who(1) command.
comm The name of the command being executed (argv[0]
value) as a string.
args The command with all its arguments as a string.
The implementation may truncate this value to
the field width; it is implementation-dependent
whether any further truncation occurs. It is
unspecified whether the string represented is a
version of the argument list as it was passed to
the command when it started, or is a version of
the arguments as they may have been modified by
the application. Applications cannot depend on
being able to modify their argument list and
having that modification be reflected in the
output of ps. The Solaris implementation limits
the string to 80 characters; the string is the
version of the argument list as it was passed to
the command when it started.
The following names are recognized in the Solaris implemen-
tation:
f Flags (hexadecimal and additive) associated with
the process.
SunOS 5.5 Last change: 28 Feb 1995 6
ps(1) User Commands ps(1)
s The state of the process.
c Processor utilization for scheduling (obsolete).
uid The effective user ID number of the process as a
decimal integer.
ruid The real user ID number of the process as a
decimal integer.
gid The effective group ID number of the process as
a decimal integer.
rgid The real group ID number of the process as a
decimal integer.
sid The process ID of the session leader.
class The scheduling class of the process.
pri The priority of the process. Higher numbers
mean higher priority.
opri The obsolete priority of the process. Lower
numbers mean higher priority.
addr The memory address of the process.
osz The size (in pages) of the swappable process's
image in main memory.
wchan The address of an event for which the process is
sleeping (if -, the process is running).
stime The starting time or date of the process,
printed with no blanks.
rss The resident set size of the process, in kilo-
bytes as a decimal integer.
pmem The ratio of the process's resident set size to
the physical memory on the machine, expressed as
a percentage.
fname The first 16 characters of the base name of the
process's executable file.
Only comm and args are allowed to contain blank characters;
all others, including the Solaris implementation variables,
are not.
SunOS 5.5 Last change: 28 Feb 1995 7
ps(1) User Commands ps(1)
The following table specifies the default header to be used
in the POSIX locale corresponding to each format specifier.
_______________________________________________________________________
| Format Specifier Default Header| Format Specifier Default Header|
|__________________________________|___________________________________|
| args COMMAND | ppid PPID |
| comm COMMAND | rgroup RGROUP |
| etime ELAPSED | ruser RUSER |
| group GROUP | time TIME |
| nice NI | tty TT |
| pcpu %CPU | user USER |
| pgid PGID | vsz VSZ |
| pid PID | |
|__________________________________|___________________________________|
The following table lists the Solaris implementation format
specifiers and the default header used with each.
_______________________________________________________________________
| Format Specifier Default Header| Format Specifier Default Header|
|__________________________________|___________________________________|
| addr ADDR | pri PRI |
| c C | rgid RGID |
| class CLS | rss RSS |
| f F | ruid RUID |
| fname COMMAND | s S |
| gid GID | sid SID |
| opri PRI | stime STIME |
| osz SZ | uid UID |
| pmem %MEM | wchan WCHAN |
|__________________________________|___________________________________|
EXAMPLES
The command:
example% ps -o user,pid,ppid=MOM -o args
writes the following in the POSIX locale:
USER PID MOM COMMAND
helene 34 12 ps -o uid,pid,ppid=MOM -o args
The contents of the COMMAND field need not be the same due
to possible truncation.
ENVIRONMENT
See environ(5) for descriptions of the following environment
variables that affect the execution of ps: LC_CTYPE,
LC_MESSAGES, LC_TIME, and NLSPATH.
COLUMNS Override the system-selected horizontal
screen size, used to determine the
SunOS 5.5 Last change: 28 Feb 1995 8
ps(1) User Commands ps(1)
number of text columns to display.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
FILES
/dev/pts/*
/dev/term/* terminal (``tty'') names searcher files
/etc/passwd UID information supplier
/proc/* process control files
/tmp/ps_data internal data structure
SEE ALSO
kill(1), nice(1), priocntl(1), who(1), getty(1M), proc(4),
ttysrch(4), environ(5)
NOTES
Things can change while ps is running; the snap-shot it
gives is true only for a split-second, and it may not be
accurate by the time you see it. Some data printed for
defunct processes is irrelevant.
If no options to select processes are specified, ps will
report all processes associated with the controlling termi-
nal. If there is no controlling terminal, there will be no
report.
ps -ef or ps -o stime may not report the actual start of a
tty login session, but rather an earlier time, when a getty
was last respawned on the tty line.
SunOS 5.5 Last change: 28 Feb 1995 9
#
usr_ucb_ps.txt (text/plain, 8.1K) download
# man -s 1B ps
Reformatting page. Wait... done
ps(1B) SunOS/BSD Compatibility Package Commands ps(1B)
NAME
ps - display the status of current processes
SYNOPSIS
/usr/ucb/ps [ -acglnrSuUvwx ] [ -t term ] [ num ]
AVAILABILITY
SUNWscpu
DESCRIPTION
The ps command displays information about processes. Nor-
mally, only those processes that are running with your
effective user ID and are attached to a controlling terminal
(see termio(7I)) are shown. Additional categories of
processes can be added to the display using various options.
In particular, the -a option allows you to include processes
that are not owned by you (that do not have your user ID),
and the -x option allows you to include processes without
control terminals. When you specify both -a and - x , you
get processes owned by anyone, with or without a control
terminal. The -r option restricts the list of processes
printed to running and runnable processes.
ps displays in tabular form the process ID, under PID; the
control terminal (if any), under TT; the cpu time used by
the process so far, including both user and system time,
under TIME; the state of the process, under S; and finally,
an indication of the COMMAND that is running.
The state is given by a single letter from the following:
O Process is running on a processor.
S Sleeping. Process is waiting for an event to com-
plete.
R Runnable. Process is on run queue.
I Idle. Process is being created.
Z Zombie state. Process terminated and parent not
waiting.
T Traced. Process stopped by a signal because parent
is tracing it.
X SXBRK state. Process is waiting for more primary
memory.
OPTIONS
The following options must all be combined to form the first
argument:
-a Include information about processes owned by others.
-c Display the command name, as stored internally in the
system for purposes of accounting, rather than the com-
mand arguments, which are kept in the process' address
SunOS 5.5 Last change: 26 Sep 1992 1
ps(1B) SunOS/BSD Compatibility Package Commands ps(1B)
space. This is more reliable, if less informative,
since the process is free to destroy the latter infor-
mation.
-g Display all processes. Without this option, ps only
prints interesting processes. Processes are deemed to
be uninteresting if they are process group leaders.
This normally eliminates top-level command interpreters
and processes waiting for users to login on free termi-
nals.
-l Display a long listing, with fields F, PPID, CP, PRI,
NI, SZ, RSS and WCHAN as described below.
-n Produce numerical output for some fields. In a user
listing, the USER field is replaced by a UID field.
-r Restrict output to running and runnable processes.
-S Display accumulated CPU time used by this process and
all of its reaped children.
-u Display user-oriented output. This includes fields
USER, SZ, RSS and START as described below.
-U Update a private database where ps keeps system infor-
mation.
-v Display a version of the output containing virtual
memory. This includes fields SIZE and RSS, described
below.
-w Use a wide output format (132 columns rather than 80);
if repeated, that is, -ww , use arbitrarily wide out-
put. This information is used to decide how much of
long commands to print.
-x Include processes with no controlling terminal.
-t term
List only process data associated with the terminal,
term. Terminal identifiers may be specified in one of
two forms: the device's file name (for example, tty04
or term/14 ) or, if the device's file name starts with
tty, just the digit identifier (for example, 04 ).
num A process number may be given, in which case the output
is restricted to that process. This option must be
supplied last.
DISPLAY FORMATS
SunOS 5.5 Last change: 26 Sep 1992 2
ps(1B) SunOS/BSD Compatibility Package Commands ps(1B)
Fields that are not common to all output formats:
USER Name of the owner of the process.
NI Process scheduling increment (see
getpriority(3C) and nice(3B)).
SIZE
SZ The combined size of the data and stack segments
(in kilobyte units)
RSS Real memory (resident set) size of the process
(in kilobyte units).
UID Numerical user-ID of process owner.
PPID Numerical ID of parent of process.
CP Short-term CPU utilization factor (used in
scheduling).
PRI The priority of the process (higher numbers mean
lower priority).
START The starting time of the process, given in
hours, minutes, and seconds. A process begun
more than 24 hours before the ps inquiry is exe-
cuted is given in months and days.
WCHAN The address of an event for which the process is
sleeping, or in SXBRK state (if blank, the pro-
cess is running).
F Flags (hexadecimal and additive) associated with
the process:
00 Process has terminated. Process table now
available.
01 A system process, always in primary memory.
02 Parent is tracing process.
04 Tracing parent's signal has stopped pro-
cess. Parent is waiting, see ptrace(2).
08 Process is currently in primary memory.
10 Process currently in primary memory, locked
until an event is completed.
A process that has exited and has a parent, but has not yet
been waited for by the parent is marked < defunct >; other-
wise, ps tries to determine the command name and arguments
given when the process was created by examining the user
block.
SunOS 5.5 Last change: 26 Sep 1992 3
ps(1B) SunOS/BSD Compatibility Package Commands ps(1B)
FILES
/dev
/dev/kmem kernel virtual memory
/dev/mem memory
/dev/swap default swap device
/dev/sxt/*
/dev/tty*
/dev/xt/* terminal ( tty ) names searcher files
/etc/passwd UID information supplier
/etc/ps_data internal data structure
SEE ALSO
kill(1), whodo(1M), lseek(2), getpriority(3C), nice(3B)
NOTES
Things can change while ps is running; the picture it gives
is only a close approximation to the current state. Some
data printed for defunct processes is irrelevant.
If no term or num is specified, ps checks the standard
input, the standard output, and the standard error in that
order, looking for the controlling terminal and will attempt
to report on processes associated with the controlling ter-
minal. In this situation, if the standard input, the stan-
dard output, and the standard error are all redirected, ps
will not find a controlling terminal, so there will be no
report.
On a heavily loaded system, ps may report an lseek(2) error
and exit. ps may seek to an invalid user area address, hav-
ing obtained the address of process' user area, ps may not
be able to seek to that address before the process exits and
the address becomes invalid.
SunOS 5.5 Last change: 26 Sep 1992 4
#
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: roberto@mha.com.br, pgman@candle.pha.pa.us
Subject: Re: pgmonitor on solaris
In-Reply-To: <5.0.2.1.0.20010326153208.00a79200@ftp.mha.com.br>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox