-Werner Almesberger <Werner.Almesberger@epfl.ch>
+Werner Almesberger <werner@almesberger.net>
Craig Small <csmall@small.dropbear.id.au>
* Works with new sort flags +2 -> -k 3 Thankyou Andrew Walrond
* pstree.x11 now just pstree with a trick Closes Debian: #201042
* Icons for pstree, thankyou Tatlin! Closes Debian: #192636
+ * Removed message if no processes found,
+ * Excess blanks in fuser removed.
+ * Two lines above close Debian: #212795
+
Changes in 21.3
===============
2003-04-03 Craig Small <csmall@small.dropbear.id.au>
- * SELinux SID selection uses -d instead of -S to stop the confusion of
+ * SELinux SID selection uses -d instead of -S to stop the confusion of
signal names, no flags with upper case letters ok?
Closes Debian: #193790, #163360
* Doesnt segfault on long cmdnames, thanks Ben Low Closes Debian: #187241
],
{
'm4_pattern_forbid' => 1,
- 'AC_TYPE_OFF_T' => 1,
'AC_C_VOLATILE' => 1,
+ 'AC_TYPE_OFF_T' => 1,
'AC_FUNC_CLOSEDIR_VOID' => 1,
'AC_REPLACE_FNMATCH' => 1,
'AC_PROG_LIBTOOL' => 1,
'AC_FUNC_STAT' => 1,
- 'AC_HEADER_TIME' => 1,
'AC_FUNC_WAIT3' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'AC_STRUCT_TM' => 1,
+ 'AC_HEADER_TIME' => 1,
'AC_FUNC_LSTAT' => 1,
- 'AC_TYPE_MODE_T' => 1,
+ 'AC_STRUCT_TM' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
'AC_FUNC_GETMNTENT' => 1,
+ 'AC_TYPE_MODE_T' => 1,
'AC_FUNC_STRTOD' => 1,
'AC_CHECK_HEADERS' => 1,
'AC_FUNC_STRNLEN' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AC_FUNC_STRERROR_R' => 1,
'AC_PROG_CC' => 1,
- 'AC_DECL_SYS_SIGLIST' => 1,
'AC_FUNC_FORK' => 1,
- 'AC_FUNC_VPRINTF' => 1,
+ 'AC_DECL_SYS_SIGLIST' => 1,
'AC_FUNC_STRCOLL' => 1,
+ 'AC_FUNC_VPRINTF' => 1,
'AC_PROG_YACC' => 1,
'AC_INIT' => 1,
'AC_STRUCT_TIMEZONE' => 1,
'AC_HEADER_STAT' => 1,
'AC_C_INLINE' => 1,
'AC_PROG_CPP' => 1,
- 'AC_C_CONST' => 1,
- 'AC_PROG_LEX' => 1,
'AC_TYPE_PID_T' => 1,
+ 'AC_PROG_LEX' => 1,
+ 'AC_C_CONST' => 1,
'AC_CONFIG_FILES' => 1,
'include' => 1,
'AC_FUNC_SETVBUF_REVERSED' => 1,
'AC_PROG_INSTALL' => 1,
'AM_GNU_GETTEXT' => 1,
- 'AC_FUNC_OBSTACK' => 1,
'AC_CHECK_LIB' => 1,
+ 'AC_FUNC_OBSTACK' => 1,
'AC_FUNC_MALLOC' => 1,
'AC_FUNC_GETGROUPS' => 1,
'AC_FUNC_GETLOADAVG' => 1,
'AH_OUTPUT' => 1,
'AC_FUNC_FSEEKO' => 1,
'AM_PROG_CC_C_O' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AC_CANONICAL_SYSTEM' => 1,
'AC_FUNC_MKTIME' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ 'AM_CONDITIONAL' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_HEADER_SYS_WAIT' => 1,
- 'AC_FUNC_MEMCMP' => 1,
'AC_PROG_LN_S' => 1,
+ 'AC_FUNC_MEMCMP' => 1,
'm4_include' => 1,
'AC_HEADER_DIRENT' => 1,
'AC_CHECK_FUNCS' => 1
-.TH FUSER 1 "October 25, 1999" "Linux" "User Commands"
+.TH FUSER 1 "September 26, 2003" "Linux" "User Commands"
.SH NAME
fuser \- identify processes using files or sockets
.SH SYNOPSIS
fuser -m /dev/sgX will show (or kill with the -k flag) all processes, even
if you don't have that device configured. There may be other devices it
does this for too.
-.SH AUTHOR
-Werner Almesberger <Werner.Almesberger@epfl.ch>
+.SH AUTHORS
+.PP
+Werner Almesberger <werner@almesberger.net>
+.PP
+Craig Small <csmall@small.dropbear.id.au>
.SH "SEE ALSO"
kill(1), killall(1), lsof(8), ps(1), kill(2)
.\"{{{}}}
-.TH KILLALL 1 "March 25, 2001" "Linux" "User Commands"
+.TH KILLALL 1 "September 26, 2003" "Linux" "User Commands"
.SH NAME
killall \- kill processes by name
.SH SYNOPSIS
\fBkillall \-w\fP doesn't detect if a process disappears and is replaced by
a new process with the same PID between scans.
.SH AUTHORS
-Werner Almesberger <Werner.Almesberger@epfl.ch> wrote the original version
+Werner Almesberger <werner@almesberger.net> wrote the original version
of psmisc. Since version 20 Craig Small <csmall@small.dropbear.id.au>
can be blamed.
.SH "SEE ALSO"
-.TH PSTREE 1 "May 6, 1998" "Linux" "User Commands"
+.TH PSTREE 1 "September 26, 2003" "Linux" "User Commands"
.SH NAME
pstree \- display a tree of processes
.SH SYNOPSIS
/proc location of the proc file system
.fi
.SH AUTHORS
-Werner Almesberger <Werner.Almesberger@epfl.ch>
+Werner Almesberger <werner@almesberger.net>
Craig Small <csmall@small.dropbear.id.au>
.SH "SEE ALSO"
ps(1), top(1)
bin_PROGRAMS = fuser killall pstree
+bin_SCRIPTS = pstree.x11
+
fuser_SOURCES = fuser.c comm.h signals.c signals.h signames.h loop.h
killall_SOURCES = killall.c comm.h signals.c signals.h signames.h
BUILT_SOURCES = signames.h
-EXTRA_DIST = signames.c
+EXTRA_DIST = signames.c pstree.x11
CLEANFILES = signames.h
subdir = src
pstree_OBJECTS = $(am_pstree_OBJECTS)
pstree_DEPENDENCIES =
pstree_LDFLAGS =
+SCRIPTS = $(bin_SCRIPTS)
+
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
pstree$(EXEEXT): $(pstree_OBJECTS) $(pstree_DEPENDENCIES)
@rm -f pstree$(EXEEXT)
$(LINK) $(pstree_LDFLAGS) $(pstree_OBJECTS) $(pstree_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ f="`echo $$p|sed '$(transform)'`"; \
+ if test -f $$p; then \
+ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f; \
+ elif test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f; \
+ else :; fi; \
+ done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ f="`echo $$p|sed '$(transform)'`"; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
done
check-am: all-am
check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(PROGRAMS) $(SCRIPTS)
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(bindir)
+ $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(bindir)
install: install-am
install-exec: install-exec-am
install-data-am:
-install-exec-am: install-binPROGRAMS
+install-exec-am: install-binPROGRAMS install-binSCRIPTS
install-info: install-info-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ uninstall-info-am
.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
clean-generic clean-libtool distclean distclean-compile \
distclean-depend distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am info info-am install \
- install-am install-binPROGRAMS install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-man install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool tags uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-info-am
+ install-am install-binPROGRAMS install-binSCRIPTS install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool tags uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ uninstall-info-am
signames.h: signames.c
@CPP@ -dM $< |\
- tr -s '\t ' ' ' | sort -n +2 | sed \
+ tr -s '\t ' ' ' | sort -n -k 3 | sed \
's:#define SIG\([A-Z]\+[0-9]*\) \([0-9]\+\) *\(\|/\*.*\)$$:{\
\2,"\1" },:p;d' | \
grep -v '[0-9][0-9][0-9]' >signames.h || \
putchar (':');
length++;
}
- while (length < NAME_FIELD)
- {
- putchar (' ');
- length++;
- }
+
first = 1;
for (item = file->items; item; item = item->next)
{
{
if (item->type != it_proc)
continue;
+ if ((first==1) && (item->u.proc.ref_set & (REF_FILE|REF_ROOT|REF_CWD|REF_EXE|REF_MMAP))) {
+ while (length < NAME_FIELD)
+ {
+ putchar (' ');
+ length++;
+ }
+ }
if (item->u.proc.ref_set & REF_FILE)
printf ("%6d", item->u.proc.pid);
if (item->u.proc.ref_set & REF_ROOT)
printf ("%*s", NAME_FIELD, "");
else if (length > NAME_FIELD)
printf ("\n%*s", NAME_FIELD, "");
+ else
+ while (length < NAME_FIELD)
+ {
+ putchar (' ');
+ length++;
+ }
printf (" %-8s ", user);
switch (item->type)
{
}
if (!(file->flags & FLAG_VERB) || first)
putchar ('\n');
- if (first)
- fprintf (stderr, _("No process references; use -v for the complete list\n"));
if (file->flags & FLAG_KILL)
for (item = file->items; item; item = item->next)
kill_item (file, item);