Sujet : Re: Basic ps Tips
De : mail (at) *nospam* rkta.de (Rene Kita)
Groupes : comp.unix.shellDate : 04. Aug 2024, 08:56:36
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v8n8n4$3ugbk$1@dont-email.me>
References : 1 2 3 4 5 6 7
User-Agent : tin/2.6.2-20221225 ("Pittyvaich") (OpenBSD/7.5 (amd64))
Joerg Mertens <
joerg-mertens@t-online.de> wrote:
Rene Kita <mail@rkta.de> wrote:
Ed Morton <mortonspam@gmail.com> wrote:
On 8/3/2024 2:08 AM, Rene Kita wrote:
Jerry Peters <jerry@example.invalid> wrote:
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
On Sat, 27 Jul 2024 00:40:49 -0000 (UTC), I wrote:
[...]
ps -p$(pgrep -d, bash) -wwo pid,ppid,lstart,tty,etime,cmd
>
says not to truncate the output, which is handy for long command lines.
Or just use ps -C <command>:
[...]
Does noone know about -C? I keep seeing things like 'ps -ef | grep
<something> in scripts to see if <something is running, rather than
using 'ps -C'.
I did not know about it.
The man page on OpenBSD does not mention -C, but calling 'ps -C' does
not give an error. But:
#v+
$ ps -C ksh
ps: /dev/mem: Permission denied'
#v-
Dunno what to make out of it, but apparently one reason to use grep
instead of -C is portability.
Its described in the man page for FreeBSD ps,
https://man.freebsd.org/cgi/man.cgi?ps(1), as:
-C Change the way the CPU percentage is calculated by
using a
"raw" CPU calculation that ignores "resident" time (this nor-
mally has no effect).
so maybe you're running FreeBSD instead of the OpenBSD version.
I'm pretty sure I know which version of BSD I'm running and I would be
very surprised if OpenBSD would ship the FreeBSD version of ps...
But let's have a look at the source:
#v+
while ((ch = getopt(argc, argv,
"AaCcefgHhjkLlM:mN:O:o:p:rSTt:U:uvW:wx")) != -1)
switch (ch) {
case 'A':
all = 1;
xflg = 1;
break;
case 'a':
all = 1;
break;
case 'C':
break; /* no-op */
#v-
'-C' does nothing. I did not look further to see where that error is
coming from.
The error message also is printed, when you run ps with a valid
flag plus some string, like `ps -a xyz´, so it seems to be independent
of the `-C´-option. Maybe it has to do with parsing of the old-style
flags vs. the dashed ones.
You got me curious and I got my debugger out for my morning coffee.
The error message comes from a function kvm_openfiles, which is called
after the flag parsing is done. From a quick glance, this function takes
what looks like three file names. If the second one is NULL, it will
default to /dev/mem. Trying to open /dev/mem it will error out - which
could be due to me being on a VPS.
While the man page mentions kvm(3) in the SEE ALSO section, there is no
mentioning nor explanation what additional arguments can be passed to
ps.
Regards