Download Latest Version d4x-1.30-1.tar.bz2 (897.7 kB)
Email in envelope

Get an email when there's a new version of Cygwin GNOME

Home / Misc_Contrib / psmisc
Name Modified Size InfoDownloads / Week
Parent folder
psmisc-20.2-src.tar.bz2 2003-01-29 126.0 kB
psmisc-20.2.README 2003-01-29 4.0 kB
psmisc-20.2-2.tar.gz 2003-01-29 51.3 kB
Totals: 3 Items   181.3 kB 0
psmisc-20.2
--------------

- what is it?
  - SURRMARY: Utilities for managing processes on your system.
  The psmisc package contains utilities for managing processes on your
  system: pstree, killall and fuser.  The pstree command displays a tree
  structure of all of the running processes on your system.  The killall
  command sends a specified signal (SIGTERM if nothing is specified) to
  processes identified by name.  The fuser command identifies the PIDs
  of processes that are using specified files or filesystems.


- system
  - Windows 2000 SP3

- Cygwin/Mingw
  - cygwin-1.3.12, gcc-2.95.3, binutils-20011002

- preliminaries
  - get the source package
    - psmisc-20.2.tar.bz2
    it can be found
    - on ftp://prdownloads.sourceforge.net 
    - in /psmisc
    - as psmisc-20.2.tar.bz2
  - <which other arrangements to make>

- configure
  - As defautls

- make
  - apply the patch attached below

- make install
  - nothing special needed

- notes
  - <what else might be interesting to know>

- package availability
  - on <site name>
  - in <path>
  - as <package name>

- contributed by
  Hansom Young <glyoung@users.sourceforge.net>

----------------------------------------------------------------------
diff -Nurp psmisc-20.2/src/fuser.c psmisc-20.2-cygwin/src/fuser.c
--- psmisc-20.2/src/fuser.c	Wed Oct 17 20:23:06 2001
+++ psmisc-20.2-cygwin/src/fuser.c	Tue Jan  7 11:52:22 2003
@@ -23,8 +23,13 @@
 #include <sys/stat.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#ifdef __CYGWIN__
+#include <limits.h>
+#endif
+#ifdef __LINUX__
 #include <linux/kdev_t.h>	/* for MKDEV */
 #include <linux/major.h>	/* for LOOP_MAJOR */
+#endif
 
 #include "comm.h"
 #include "loop.h"         /* for loop_info */
@@ -386,8 +391,10 @@ check_map (const char *rel, pid_t pid, i
     {
       if (sscanf (line, "%*s %*s %*s %x:%x %ld", &major, &minor, &inode) != 3)
 	continue;
+#ifdef __LINUX__
       if (major || minor || inode)
 	add_file (rel, MKDEV (major, minor), inode, pid, type);
+#endif
     }
   fclose (file);
 }
@@ -469,6 +476,7 @@ scan_mounts (void)
       /* new kernel :-) */
       if (stat (path, &st_dev) < 0)
 	continue;		/* might be NFS or such */
+#ifndef __CYGWIN__
       if (S_ISBLK (st_dev.st_mode) && MAJOR (st_dev.st_rdev) == LOOP_MAJOR)
 	{
           struct loop_info loopinfo;
@@ -481,6 +489,7 @@ scan_mounts (void)
             (void) close(fd);
                 }
 	}
+#endif
       if (stat (mounted, &st_mounted) < 0)
 	{
 	  perror (mounted);
diff -Nurp psmisc-20.2/src/killall.c psmisc-20.2-cygwin/src/killall.c
--- psmisc-20.2/src/killall.c	Wed Jun 13 09:20:22 2001
+++ psmisc-20.2-cygwin/src/killall.c	Tue Jan  7 11:45:46 2003
@@ -18,6 +18,9 @@
 #include <getopt.h>
 #include <libintl.h>
 #include <locale.h>
+#ifdef __CYGWIN__
+#include <limits.h>
+#endif
 #define _(String) gettext (String)
 
 #include "comm.h"
@@ -377,7 +380,11 @@ main (int argc, char **argv)
   textdomain(PACKAGE);
 
   opterr = 0;
+#ifndef __CYGWIN__
   while ( (optc = getopt_long_only(argc,argv,"egilqs:vwV",options,NULL)) != EOF) {
+#else
+  while ( (optc = getopt_long(argc,argv,"egilqs:vwV",options,NULL)) != EOF) {
+#endif
     switch (optc) {
       case 'e':
         exact = 1;
diff -Nurp psmisc-20.2/src/pstree.c psmisc-20.2-cygwin/src/pstree.c
--- psmisc-20.2/src/pstree.c	Thu Oct 18 06:42:24 2001
+++ psmisc-20.2-cygwin/src/pstree.c	Tue Jan  7 11:54:20 2003
@@ -20,6 +20,9 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
+#ifdef __CYGWIN__
+#include <limits.h>
+#endif
 
 #include "comm.h"
 
@@ -523,7 +526,7 @@ read_proc (void)
               /* We now have readbuf with pid and cmd, and tmpptr+2
                * with the rest */
               /*printf("readbuf: %s\n", readbuf);*/
-              if (sscanf(readbuf, "%*d (%15c", comm) == 1)
+              if (sscanf(readbuf, "%*d (%[^)]", comm) == 1)
               {
                 /*printf("tmpptr: %s\n", tmpptr+2);*/
                 if (sscanf(tmpptr+2, "%*c %d", &ppid) == 1) 
Source: psmisc-20.2.README, updated 2003-01-29