Tom Lane writes:
> Mathijs Brands <mathijs@ilse.nl> writes:
> > mathijs 297 0.1 0.2 6120 3352 pts/1 S 01:59:18 0:00 /opt/pgsql/bin/./postgres mathijs localhost template1
idle
>
> The interesting point about this is that the 7.0.3-on-2.7 installation
> *is* managing to change its PS display. So either Solaris 2.8
> retrogressed (different predefined symbols maybe?), or we broke the code
> since 7.0.3.
I think I broke it.
The deal on Solaris is this: There's SysV-style ps at /usr/bin/ps, and
there's BSD-style ps at /usr/ucb/ps. The most obvious differences are the
different argument style and the different output format. In true BSD
style, the /usr/ucb/ps display can be changed by assigning argv[x] =
"whatever". In true SysV style, the /usr/bin/ps display can (presumably)
be changed with strcpy(argv[0], "whatever").
The old (pre-7.1) code only worked for BSD and had an exception case for
Linux. The new code is mostly adopted from Sendmail. So in pre-7.1 you
could get /usr/ucb/ps to work, while Sendmail apparently tried to get the
SysV-style ps to work -- and failed(?). (This is generally the right
direction, because the /usr/ucb stuff is obsolescent on Solaris, only for
compatibility with SunOS 4.)
The consequence should be:
1. check if sendmail works with /usr/bin/ps
2. a) if yes, figure out what got lost in PostgreSQL
2. b) if no, make the Solaris case in ps_status.c use the BSD approach
--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/