diff --git a/usr.bin/procstat/procstat.1 b/usr.bin/procstat/procstat.1 index 01a08fc8dff7..7cf562a7d7c9 100644 --- a/usr.bin/procstat/procstat.1 +++ b/usr.bin/procstat/procstat.1 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 29, 2012 +.Dd March 23, 2012 .Dt PROCSTAT 1 .Os .Sh NAME @@ -110,6 +110,8 @@ Display the process ID, command, and path to the process binary: process ID .It COMM command +.It OSREL +osreldate for process binary .It PATH path to process binary (if available) .El diff --git a/usr.bin/procstat/procstat_bin.c b/usr.bin/procstat/procstat_bin.c index cf4ca5b4644c..718103dd69cc 100644 --- a/usr.bin/procstat/procstat_bin.c +++ b/usr.bin/procstat/procstat_bin.c @@ -43,11 +43,11 @@ void procstat_bin(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; @@ -65,7 +65,19 @@ procstat_bin(struct kinfo_proc *kipp) 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", kipp->ki_pid); + return; + } + if (error < 0) + return; + printf("%5d ", kipp->ki_pid); printf("%-16s ", kipp->ki_comm); + printf("%8d ", osrel); printf("%s\n", pathname); }