Path: ...!2.eu.feeder.erje.net!feeder.erje.net!news.swapon.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Rene Kita Newsgroups: comp.unix.shell Subject: Re: Basic ps Tips Date: Sun, 4 Aug 2024 06:56:36 -0000 (UTC) Organization: A noiseless patient Spider Lines: 80 Sender: Rene Kita Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 04 Aug 2024 08:56:36 +0200 (CEST) Injection-Info: dont-email.me; posting-host="5bb73beb76f131e1add5191ddcbdb302"; logging-data="4145524"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Jo97c8d2tLGuPCy6erZoZ" User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (OpenBSD/7.5 (amd64)) Cancel-Lock: sha1:ThawIk5dWmnNDeslRR2ulR0CUZ0= Bytes: 4271 Joerg Mertens wrote: > Rene Kita wrote: >> Ed Morton wrote: >>> On 8/3/2024 2:08 AM, Rene Kita wrote: >>>> Jerry Peters wrote: >>>>> Lawrence D'Oliveiro 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 : >>>> [...] >>>>> Does noone know about -C? I keep seeing things like 'ps -ef | grep >>>>> in scripts to see if >>>> 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