Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Apr 2012 17:12:18 -0400
From:      Jason Hellenthal <jhellenthal@dataix.net>
To:        Mikolaj Golub <trociny@freebsd.org>
Cc:        stable@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r233953 - stable/8/usr.bin/procstat
Message-ID:  <20120408211218.GA62178@DataIX.net>
In-Reply-To: <201204061632.q36GWTT2017212@svn.freebsd.org>
References:  <201204061632.q36GWTT2017212@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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 =;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120408211218.GA62178>