This commit in action does not seem to be doing the correct thing even though it does report an error when kern.proc.pathname is not known. Running procstat -a -b produces: [...] 1848 ksh 803500 /bin/ksh procstat: sysctl: kern.proc.pathname: 2208: No such file or directory 2210 ksh 803500 /bin/ksh [...] While procstat -a produces: [...] 1848 1846 1848 1848 1848 1 jhellenthal wait FreeBSD ELF32 ksh 2208 1814 2208 2208 0 1 jhellenthal select FreeBSD ELF32 xterm 2210 2208 2210 2210 2210 1 jhellenthal wait FreeBSD ELF32 ksh [...] If process 2208 can be seen during (procstat -a) I do not see a reason to bailout and print an error when (-b) is used. Just print the orrelease as (0) and print the rest of the information that should be seen... Could someone have a closer look at this? On Fri, Apr 06, 2012 at 04:32:29PM +0000, Mikolaj Golub wrote:> Author: trociny > Date: Fri Apr 6 16:32:29 2012 > New Revision: 233953 > URL: http://svn.freebsd.org/changeset/base/233953 > > Log: > MFC r233390: > > When displaying binary information show also osreldate. > > Suggested by: kib > > Modified: > stable/8/usr.bin/procstat/procstat.1 > stable/8/usr.bin/procstat/procstat_bin.c > Directory Properties: > stable/8/usr.bin/procstat/ (props changed) > > Modified: stable/8/usr.bin/procstat/procstat.1 > =============================================================================> --- stable/8/usr.bin/procstat/procstat.1 Fri Apr 6 16:31:29 2012 (r233952) > +++ stable/8/usr.bin/procstat/procstat.1 Fri Apr 6 16:32:29 2012 (r233953) > @@ -25,7 +25,7 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd March 7, 2010 > +.Dd March 23, 2012 > .Dt PROCSTAT 1 > .Os > .Sh NAME > @@ -98,6 +98,8 @@ Display the process ID, command, and pat > process ID > .It COMM > command > +.It OSREL > +osreldate for process binary > .It PATH > path to process binary (if available) > .El > > Modified: stable/8/usr.bin/procstat/procstat_bin.c > =============================================================================> --- stable/8/usr.bin/procstat/procstat_bin.c Fri Apr 6 16:31:29 2012 (r233952) > +++ stable/8/usr.bin/procstat/procstat_bin.c Fri Apr 6 16:32:29 2012 (r233953) > @@ -42,11 +42,11 @@ void > procstat_bin(pid_t pid, struct kinfo_proc *kipp) > { > char pathname[PATH_MAX]; > - int error, name[4]; > + int error, osrel, name[4]; > size_t len; > > if (!hflag) > - printf("%5s %-16s %-53s\n", "PID", "COMM", "PATH"); > + printf("%5s %-16s %8s %s\n", "PID", "COMM", "OSREL", "PATH"); > > name[0] = CTL_KERN; > name[1] = KERN_PROC; > @@ -64,7 +64,19 @@ procstat_bin(pid_t pid, struct kinfo_pro > if (len == 0 || strlen(pathname) == 0) > strcpy(pathname, "-"); > > + name[2] = KERN_PROC_OSREL; > + > + len = sizeof(osrel); > + error = sysctl(name, 4, &osrel, &len, NULL, 0); > + if (error < 0 && errno != ESRCH) { > + warn("sysctl: kern.proc.osrel: %d", pid); > + return; > + } > + if (error < 0) > + return; > + > printf("%5d ", pid); > printf("%-16s ", kipp->ki_comm); > + printf("%8d ", osrel); > printf("%s\n", pathname); > } > _______________________________________________ > svn-src-stable-8@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-stable-8 > To unsubscribe, send any mail to "svn-src-stable-8-unsubscribe@freebsd.org"-- ;s =;
On Sun, 8 Apr 2012 17:12:18 -0400 Jason Hellenthal wrote:
JH> This commit in action does not seem to be doing the correct thing even
JH> though it does report an error when kern.proc.pathname is not known.
JH> Running procstat -a -b produces:
JH> [...]
JH> 1848 ksh 803500 /bin/ksh
JH> procstat: sysctl: kern.proc.pathname: 2208: No such file or directory
Plese note, the error was generated by kern.proc.pathname sysctl, not
kern.proc.osrel. I suppose it is because /bin/ksh binary had been reinstalled
and 1848 ran the old binary.
My commit has not touched the kern.proc.pathname part and the same bahavior
was before the change.
JH> 2210 ksh 803500 /bin/ksh
JH> [...]
JH> While procstat -a produces:
JH> [...]
JH> 1848 1846 1848 1848 1848 1 jhellenthal wait FreeBSD ELF32 ksh
JH> 2208 1814 2208 2208 0 1 jhellenthal select FreeBSD ELF32
xterm
JH> 2210 2208 2210 2210 2210 1 jhellenthal wait FreeBSD ELF32 ksh
JH> [...]
JH> If process 2208 can be seen during (procstat -a) I do not see a reason
JH> to bailout and print an error when (-b) is used. Just print the
JH> orrelease as (0) and print the rest of the information that should be
JH> seen...
JH> Could someone have a closer look at this?
JH> On Fri, Apr 06, 2012 at 04:32:29PM +0000, Mikolaj Golub wrote:
>> Author: trociny
>> Date: Fri Apr 6 16:32:29 2012
>> New Revision: 233953
>> URL: http://svn.freebsd.org/changeset/base/233953
>>
>> Log:
>> MFC r233390:
>>
>> When displaying binary information show also osreldate.
>>
>> Suggested by: kib
>>
>> Modified:
>> stable/8/usr.bin/procstat/procstat.1
>> stable/8/usr.bin/procstat/procstat_bin.c
>> Directory Properties:
>> stable/8/usr.bin/procstat/ (props changed)
>>
>> Modified: stable/8/usr.bin/procstat/procstat.1
>>
=============================================================================
>> --- stable/8/usr.bin/procstat/procstat.1 Fri Apr 6 16:31:29
2012 (r233952)
>> +++ stable/8/usr.bin/procstat/procstat.1 Fri Apr 6 16:32:29
2012 (r233953)
>> @@ -25,7 +25,7 @@
>> .\"
>> .\" $FreeBSD$
>> .\"
>> -.Dd March 7, 2010
>> +.Dd March 23, 2012
>> .Dt PROCSTAT 1
>> .Os
>> .Sh NAME
>> @@ -98,6 +98,8 @@ Display the process ID, command, and pat
>> process ID
>> .It COMM
>> command
>> +.It OSREL
>> +osreldate for process binary
>> .It PATH
>> path to process binary (if available)
>> .El
>>
>> Modified: stable/8/usr.bin/procstat/procstat_bin.c
>>
=============================================================================
>> --- stable/8/usr.bin/procstat/procstat_bin.c Fri Apr 6 16:31:29
2012 (r233952)
>> +++ stable/8/usr.bin/procstat/procstat_bin.c Fri Apr 6
16:32:29 2012 (r233953)
>> @@ -42,11 +42,11 @@ void
>> procstat_bin(pid_t pid, struct kinfo_proc *kipp)
>> {
>> char pathname[PATH_MAX];
>> - int error, name[4];
>> + int error, osrel, name[4];
>> size_t len;
>>
>> if (!hflag)
>> - printf("%5s %-16s %-53s\n",
"PID", "COMM", "PATH");
>> + printf("%5s %-16s %8s %s\n",
"PID", "COMM", "OSREL", "PATH");
>>
>> name[0] = CTL_KERN;
>> name[1] = KERN_PROC;
>> @@ -64,7 +64,19 @@ procstat_bin(pid_t pid, struct kinfo_pro
>> if (len == 0 || strlen(pathname) == 0)
>> strcpy(pathname, "-");
>>
>> + name[2] = KERN_PROC_OSREL;
>> +
>> + len = sizeof(osrel);
>> + error = sysctl(name, 4, &osrel, &len, NULL, 0);
>> + if (error < 0 && errno != ESRCH) {
>> + warn("sysctl: kern.proc.osrel: %d", pid);
>> + return;
>> + }
>> + if (error < 0)
>> + return;
>> +
>> printf("%5d ", pid);
>> printf("%-16s ", kipp->ki_comm);
>> + printf("%8d ", osrel);
>> printf("%s\n", pathname);
>> }
>> _______________________________________________
>> svn-src-stable-8@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/svn-src-stable-8
>> To unsubscribe, send any mail to
"svn-src-stable-8-unsubscribe@freebsd.org"
JH> --
JH> ;s =;
--
Mikolaj Golub