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)