From 49403a9b267d2b121b7828fbae2dd05737f36c0d Mon Sep 17 00:00:00 2001
From: Jan Wagner
Date: Wed, 6 Nov 2013 09:53:41 +0100
Subject: [PATCH] Imported Upstream version 1.08
---
ChangeLog | 265 ++++++++++++++++++++++++-------------------
NEWS | 7 +-
THANKS | 4 +-
configure | 2 +-
configure.ac | 4 +-
docs/ps-watcher.8 | 6 +-
docs/ps-watcher.html | 108 +++++++++---------
ps-watcher | 63 +++++++++-
ps-watcher.in.in | 63 +++++++++-
9 files changed, 338 insertions(+), 184 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index f4f40f1..4ec7c2a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,90 +2,119 @@
## autogenerated ChangeLog -- don't edit
##
-2008-12-25 Thursday 17:01 Rocky Bernstein
+2009-02-19 Thursday 17:00 Rocky Bernstein
+
+ * configure.ac: We're in 1.08 now
+
+2009-02-19 Thursday 16:57 Rocky Bernstein
+
+ * THANKS, ps-watcher.in.in: pidfile support from Jan Wagner and
+ friends
+
+2008-12-31 Wednesday 11:25 Rocky Bernstein
+
+ * home-page/: index.html: Presumably a little more compliant
+
+2008-12-31 Wednesday 11:17 Rocky Bernstein
+
+ * home-page/index.html: Convert to use css
+
+2008-12-25 Thursday 17:34 Rocky Bernstein
+
+ * .cvsignore: This time, for sure!
+
+2008-12-25 Thursday 17:33 Rocky Bernstein
+
+ * cvs2cl_usermap: More administrivia
+
+2008-12-25 Thursday 17:31 Rocky Bernstein
+
+ * .cvsignore: Administrivia
+
+2008-12-25 Thursday 17:01 Rocky Bernstein
* Makefile.am, samples/root-procs.ini: Add sample code using
perl-action.
-2008-12-25 Thursday 16:42 Rocky Bernstein
+2008-12-25 Thursday 16:42 Rocky Bernstein
* configure.ac, tests/paction.cnf: More Darwin9 fixes: tty can be
many token so put at end of parsing.
-2008-12-25 Thursday 16:39 Rocky Bernstein
+2008-12-25 Thursday 16:39 Rocky Bernstein
* Makefile.am, NEWS, configure.ac: Get ready for 1.07 release
-2008-12-23 Tuesday 11:09 Rocky Bernstein
+2008-12-23 Tuesday 11:09 Rocky Bernstein
* ps-watcher.in.in: Typo: svz -> vsz. Thanks to Oliver Guerrier for
pointing out.
-2008-12-18 Thursday 01:07 Rocky Bernstein
+2008-12-18 Thursday 01:07 Rocky Bernstein
* ps-watcher.in.in: Bug in duplicating log
-2008-12-17 Wednesday 20:08 Rocky Bernstein
+2008-12-17 Wednesday 20:08 Rocky Bernstein
* ANNOUNCE, AUTHORS, configure.ac: test cygwin and NetBSD and
update contact info
-2008-12-17 Wednesday 19:28 Rocky Bernstein
+2008-12-17 Wednesday 19:28 Rocky Bernstein
* post-configure.in: Tolerate older Perl's enough to warn that we
can't use them.
-2008-12-17 Wednesday 18:31 Rocky Bernstein
+2008-12-17 Wednesday 18:31 Rocky Bernstein
* configure.ac: Linux newline nuke fixes along the lines of the
Darwin code
-2008-12-17 Wednesday 17:06 Rocky Bernstein
+2008-12-17 Wednesday 17:06 Rocky Bernstein
* configure.ac, ps-watcher.in.in: Better about dealing with
unwritable log file
-2008-12-17 Wednesday 16:31 Rocky Bernstein
+2008-12-17 Wednesday 16:31 Rocky Bernstein
* configure.ac: In 1.07 now
-2008-12-17 Wednesday 16:27 Rocky Bernstein
+2008-12-17 Wednesday 16:27 Rocky Bernstein
* configure.ac: Changes for Darwin9
-2006-11-17 Friday 14:02 Rocky Bernstein
+2006-11-17 Friday 14:02 Rocky Bernstein
* ps-watcher.in.in, home-page/index.html: Small typos.
-2006-09-21 Thursday 23:07 Rocky Bernstein
+2006-09-21 Thursday 23:07 Rocky Bernstein
* home-page/index.html: Correct for new sf link
-2006-03-11 Saturday 03:16 Rocky Bernstein
+2006-03-11 Saturday 03:16 Rocky Bernstein
* ps-watcher.in.in: More doc changes
-2006-03-10 Friday 19:33 Rocky Bernstein
+2006-03-10 Friday 19:33 Rocky Bernstein
* NEWS: Last change before release
-2006-03-10 Friday 19:07 Rocky Bernstein
+2006-03-10 Friday 19:07 Rocky Bernstein
* configure.ac, post-configure.in, ps-watcher.in.in,
tests/basic.t.in: Deal with time on netbsdelf and regression
tests. basic.t.in: generalize time handling - not just cygwin.
post-configure.in configure.ac: clean up a little.
-2006-03-10 Friday 13:12 Rocky Bernstein
+2006-03-10 Friday 13:12 Rocky Bernstein
* tests/: args.t.in, basic.t.in, count.t.in, full.t.in: Run
ps-watcher in tests with configured Perl location.
-2006-03-10 Friday 12:47 Rocky Bernstein
+2006-03-10 Friday 12:47 Rocky Bernstein
* tests/: full.cnf, full.t.in: Add a test and adjust for cygwin.
-2006-03-10 Friday 12:26 Rocky Bernstein
+2006-03-10 Friday 12:26 Rocky Bernstein
* configure.ac, post-configure.in, ps-watcher.in.in,
tests/basic.t.in: Changes to make this work on more
@@ -93,56 +122,56 @@
to get invocation work eveywhere basic.t.in: test for cputime;
forgot !
-2006-03-10 Friday 04:51 Rocky Bernstein
+2006-03-10 Friday 04:51 Rocky Bernstein
* configure.ac: Darwin 8 is okay
-2006-03-10 Friday 04:50 Rocky Bernstein
+2006-03-10 Friday 04:50 Rocky Bernstein
* configure.ac: Bug in running right Perl in post-configure
-2006-03-10 Friday 03:49 Rocky Bernstein
+2006-03-10 Friday 03:49 Rocky Bernstein
* configure.ac, post-configure.in: Use PERL value specified more.
-2006-03-10 Friday 03:39 Rocky Bernstein
+2006-03-10 Friday 03:39 Rocky Bernstein
* NEWS, configure.ac: Add configure option to specify Perl location
-2006-03-10 Friday 03:24 Rocky Bernstein
+2006-03-10 Friday 03:24 Rocky Bernstein
* tests/args.t.in: typo: it's ok not okay.
-2006-03-10 Friday 03:21 Rocky Bernstein
+2006-03-10 Friday 03:21 Rocky Bernstein
* configure.ac, ps-watcher.in.in, tests/args.t.in,
tests/basic.t.in, tests/full.t.in, tests/paction.t: Add minimal
cygwin support
-2006-03-09 Thursday 17:37 Rocky Bernstein
+2006-03-09 Thursday 17:37 Rocky Bernstein
* configure.ac, post-configure.in, tests/01.pod.t.in,
tests/Makefile.am: 01.pod.t.in: add POD testing routine
configure.ac: do chmod +x on perl-substituted files.
-2006-03-09 Thursday 16:46 Rocky Bernstein
+2006-03-09 Thursday 16:46 Rocky Bernstein
* NEWS, ps-watcher.in.in: Document security better.
-2006-03-08 Wednesday 22:52 Rocky Bernstein
+2006-03-08 Wednesday 22:52 Rocky Bernstein
* configure.ac, ps-watcher.in.in, home-page/index.html: Get ready
for 1.06 release.
-2006-03-08 Wednesday 22:24 Rocky Bernstein
+2006-03-08 Wednesday 22:24 Rocky Bernstein
* ps-watcher.in.in: Correction in getting signal name.
-2006-03-08 Wednesday 19:21 Rocky Bernstein
+2006-03-08 Wednesday 19:21 Rocky Bernstein
* touch.pl: Reinstate since Makefile.am uses.
-2006-03-08 Wednesday 19:15 Rocky Bernstein
+2006-03-08 Wednesday 19:15 Rocky Bernstein
* AUTHORS, Makefile.am, cvs2cl_usermap, post-configure.in,
ps-watcher.in.in, touch.pl: ps-watcher.in.in: Wasn't terminating
@@ -152,11 +181,11 @@
*: rocky@panix.com -> rocky@cpan.org touch.pl: now handled inside
post-configure by Perl
-2006-02-03 Friday 02:23 Rocky Bernstein
+2006-02-03 Friday 02:23 Rocky Bernstein
* ps-watcher.in.in: One more small typo.
-2006-02-03 Friday 02:15 Rocky Bernstein
+2006-02-03 Friday 02:15 Rocky Bernstein
* post-configure.in, ps-watcher.in.in, home-page/index.html: Mostly
small changes:
@@ -169,41 +198,41 @@
home-page/index.html: Probably remove a W3C error.
-2006-01-17 Tuesday 10:00 Rocky Bernstein
+2006-01-17 Tuesday 10:00 Rocky Bernstein
* home-page/index.html: Make valid HTML as per W3C.
-2005-10-12 Wednesday 01:14 Rocky Bernstein
+2005-10-12 Wednesday 01:14 Rocky Bernstein
* ps-watcher.in.in, NEWS: Add BUGS section to manual to describe
common problems.
-2005-09-12 Monday 17:03 Rocky Bernstein
+2005-09-12 Monday 17:03 Rocky Bernstein
* configure.ac: Now in 1.06cvs territory
-2005-09-12 Monday 17:03 Rocky Bernstein
+2005-09-12 Monday 17:03 Rocky Bernstein
* ps-watcher.in.in: Guard against uninitialized variables
-2005-06-22 Wednesday 01:59 Rocky Bernstein
+2005-06-22 Wednesday 01:59 Rocky Bernstein
* home-page/index.html: instead of ?
-2005-06-22 Wednesday 01:57 Rocky Bernstein
+2005-06-22 Wednesday 01:57 Rocky Bernstein
* home-page/index.html: Correct grammar courtesy of Sir Monitor
Lizard, Ph. Mad.
-2005-05-17 Tuesday 22:00 Rocky Bernstein
+2005-05-17 Tuesday 22:00 Rocky Bernstein
* NEWS: What's new.
-2005-05-17 Tuesday 09:56 Rocky Bernstein
+2005-05-17 Tuesday 09:56 Rocky Bernstein
* configure.ac: NetBSD works like FreeBSD
-2005-05-17 Tuesday 09:52 Rocky Bernstein
+2005-05-17 Tuesday 09:52 Rocky Bernstein
* COPYING, Makefile.am, NEWS, config.guess, config.sub,
configure.ac, missing, post-configure.in, docs/Makefile.am,
@@ -212,45 +241,45 @@
GPL address change.
-2005-04-09 Saturday 18:06 Rocky Bernstein
+2005-04-09 Saturday 18:06 Rocky Bernstein
* ps-watcher.in.in: Like this a tad better.
-2005-04-04 Monday 23:58 Rocky Bernstein
+2005-04-04 Monday 23:58 Rocky Bernstein
* NEWS, ps-watcher.in.in: Note recent change.
-2005-04-04 Monday 23:53 Rocky Bernstein
+2005-04-04 Monday 23:53 Rocky Bernstein
* THANKS: Add thanks to Iñaki Sánchez.
-2005-04-04 Monday 23:50 Rocky Bernstein
+2005-04-04 Monday 23:50 Rocky Bernstein
* ps-watcher.in.in, tests/basic.cnf.in: Allow $ps_pat to be used in
action. Patch courtesy of Iñaki Sánchez. (i s a n c h e z at
unav dot es)
-2004-09-11 Saturday 13:29 Rocky Bernstein
+2004-09-11 Saturday 13:29 Rocky Bernstein
* docs/.cvsignore: More pod2htm stuff.
-2004-09-09 Thursday 10:58 Rocky Bernstein
+2004-09-09 Thursday 10:58 Rocky Bernstein
* NEWS, cvs2cl_header, cvs2cl_usermap: ChangeLog-creation
improvements.
-2004-09-07 Tuesday 13:51 Rocky Bernstein
+2004-09-07 Tuesday 13:51 Rocky Bernstein
* Makefile.am, ps-watcher.in.in, docs/Makefile.am,
samples/port-watch.ini: Make distcheck works. Show how to use
$PROLOG to do a no-ps like thing such as watching a port (via
lsof).
-2004-05-26 Wednesday 13:46 Rocky Bernstein
+2004-05-26 Wednesday 13:46 Rocky Bernstein
* ps-watcher.in.in: Small change.
-2004-05-26 Wednesday 13:42 Rocky Bernstein
+2004-05-26 Wednesday 13:42 Rocky Bernstein
* Makefile.am, configure.ac, ps-watcher.in.in, docs/Makefile.am:
ps-watcher.in.in: smallish changes - call closelog on
@@ -264,313 +293,313 @@
configure.ac: now in version 1.05 now. Allow maintainer mode (to
create ChangeLog)
-2004-02-15 Sunday 12:03 Rocky Bernstein
+2004-02-15 Sunday 12:03 Rocky Bernstein
* docs/Makefile.am: Set title to name without the .in.
-2004-01-18 Sunday 12:20 Rocky Bernstein
+2004-01-18 Sunday 12:20 Rocky Bernstein
* ps-watcher.in.in: Update copyright.
-2004-01-18 Sunday 11:49 Rocky Bernstein
+2004-01-18 Sunday 11:49 Rocky Bernstein
* ps-watcher.in.in: Improve documentation with respect to
perl-action.
-2004-01-15 Thursday 03:23 Rocky Bernstein
+2004-01-15 Thursday 03:23 Rocky Bernstein
* ps-watcher.in.in: perldoc fix.
-2004-01-15 Thursday 03:02 Rocky Bernstein
+2004-01-15 Thursday 03:02 Rocky Bernstein
* tests/paction.t: Regression test for $PROLOG, $EPILOG and
perl-action.
-2004-01-15 Thursday 03:00 Rocky Bernstein
+2004-01-15 Thursday 03:00 Rocky Bernstein
* configure.ac, ps-watcher.in.in, tests/Makefile.am,
tests/paction.cnf: Add $PROLOG, $EPILOG and perl-action sections.
Allows one to accumulate information over all processes and take
action on that.
-2004-01-10 Saturday 04:39 Rocky Bernstein
+2004-01-10 Saturday 04:39 Rocky Bernstein
* ps-watcher.in.in: Documentation enhancement, I think.
-2003-11-22 Saturday 12:31 Rocky Bernstein
+2003-11-22 Saturday 12:31 Rocky Bernstein
* ps-watcher.in.in: And another formatting change...
-2003-11-22 Saturday 12:27 Rocky Bernstein
+2003-11-22 Saturday 12:27 Rocky Bernstein
* ps-watcher.in.in: One more trivial typo....
-2003-11-22 Saturday 12:26 Rocky Bernstein
+2003-11-22 Saturday 12:26 Rocky Bernstein
* ps-watcher.in.in: Documentation typo.
-2003-11-22 Saturday 12:01 Rocky Bernstein
+2003-11-22 Saturday 12:01 Rocky Bernstein
* NEWS, configure.ac: Get ready for new (minor) release.
-2003-11-21 Friday 02:36 Rocky Bernstein
+2003-11-21 Friday 02:36 Rocky Bernstein
* ps-watcher.in.in, tests/basic.cnf.in, tests/basic.t.in: Add
first-trigger feature.
-2003-09-11 Thursday 03:17 Rocky Bernstein
+2003-09-11 Thursday 03:17 Rocky Bernstein
* NEWS: Get ready for a release.
-2003-09-10 Wednesday 07:30 Rocky Bernstein
+2003-09-10 Wednesday 07:30 Rocky Bernstein
* ps-watcher.in.in: Fix example configuration as suggested in bug
#776229.
-2003-09-05 Friday 00:23 Rocky Bernstein
+2003-09-05 Friday 00:23 Rocky Bernstein
* ps-watcher.in.in: More complicated trigger example suggested by
jason
-2003-09-03 Wednesday 02:04 Rocky Bernstein
+2003-09-03 Wednesday 02:04 Rocky Bernstein
* ps-watcher.in.in: Add troubleshooting section
-2003-09-03 Wednesday 01:42 Rocky Bernstein
+2003-09-03 Wednesday 01:42 Rocky Bernstein
* configure.ac, ps-watcher.in.in: Fixes for FreeBSD
-2003-08-31 Sunday 21:22 Rocky Bernstein
+2003-08-31 Sunday 21:22 Rocky Bernstein
* tests/basic.cnf.in: perhaps some processes use so little CPU that
the elapsed time will round to zero. Deal with it.
-2003-08-30 Saturday 20:49 Rocky Bernstein
+2003-08-30 Saturday 20:49 Rocky Bernstein
* ps-watcher.in.in: Update date.
-2003-08-29 Friday 10:49 Rocky Bernstein
+2003-08-29 Friday 10:49 Rocky Bernstein
* configure.ac: Get ready for another release.
-2003-08-29 Friday 10:48 Rocky Bernstein
+2003-08-29 Friday 10:48 Rocky Bernstein
* tests/: args.t.in, basic.t.in, count.t.in, full.t.in: Regression
tests need to deal with timestamped output.
-2003-08-29 Friday 10:47 Rocky Bernstein
+2003-08-29 Friday 10:47 Rocky Bernstein
* ps-watcher.in.in: Add syslog-like timestamp to logfile output.
Problems with getting ps-output now appears only on debug output.
-2003-08-29 Friday 10:45 Rocky Bernstein
+2003-08-29 Friday 10:45 Rocky Bernstein
* post-configure.in: Use -w (warning) on perl invocation
-2003-08-13 Wednesday 02:33 Rocky Bernstein
+2003-08-13 Wednesday 02:33 Rocky Bernstein
* configure.ac: PS_CAN_RETURN_MULTIPLE_LINES not set on AIX which
broke it.
-2003-07-11 Friday 05:56 Rocky Bernstein
+2003-07-11 Friday 05:56 Rocky Bernstein
* Makefile.am: Add sample files
-2003-07-11 Friday 05:47 Rocky Bernstein
+2003-07-11 Friday 05:47 Rocky Bernstein
* configure.ac: typo
-2003-07-11 Friday 05:46 Rocky Bernstein
+2003-07-11 Friday 05:46 Rocky Bernstein
* configure.ac: Get ready for 1.0 release.
-2003-07-11 Friday 05:43 Rocky Bernstein
+2003-07-11 Friday 05:43 Rocky Bernstein
* Makefile.am, tests/Makefile.am, tests/args.t.in,
tests/count.t.in, tests/full.t.in: Make "make distcheck" work.
-2003-07-11 Friday 05:42 Rocky Bernstein
+2003-07-11 Friday 05:42 Rocky Bernstein
* THANKS: Update as appropriate.
-2003-07-10 Thursday 12:20 Rocky Bernstein
+2003-07-10 Thursday 12:20 Rocky Bernstein
* configure.ac, post-configure.in: A tad better for making "make
distcheck" work: Use $srcdir in post-configure and arrange for
srcdir to be passed in.
-2003-07-10 Thursday 11:50 Rocky Bernstein
+2003-07-10 Thursday 11:50 Rocky Bernstein
* THANKS, TODO, config.cache, configure.ac, ps-watcher.in.in: Deal
with ps (e.g. Solaris's) which return more than one line for a
single pid.
-2003-07-10 Thursday 11:42 Rocky Bernstein
+2003-07-10 Thursday 11:42 Rocky Bernstein
* ps-watcher.in.in: Stupid mistake - comments are # not /* */.
-2003-05-19 Monday 16:33 Rocky Bernstein
+2003-05-19 Monday 16:33 Rocky Bernstein
* configure.ac: Accomodate darwin6
-2003-05-19 Monday 16:33 Rocky Bernstein
+2003-05-19 Monday 16:33 Rocky Bernstein
* tests/args.t.in: Add one test of --nosyslog
-2003-05-19 Monday 15:58 Rocky Bernstein
+2003-05-19 Monday 15:58 Rocky Bernstein
* configure.ac: Add AIX support.
-2003-05-16 Friday 00:12 Rocky Bernstein
+2003-05-16 Friday 00:12 Rocky Bernstein
* README: IniConf is now called Config::IniFiles
-2003-03-06 Thursday 05:57 Rocky Bernstein
+2003-03-06 Thursday 05:57 Rocky Bernstein
* configure.ac: Failed full test. Need to add -x.
-2003-03-06 Thursday 05:48 Rocky Bernstein
+2003-03-06 Thursday 05:48 Rocky Bernstein
* tests/full.cnf: Don't assume first is pid 1!
-2003-03-06 Thursday 05:37 Rocky Bernstein
+2003-03-06 Thursday 05:37 Rocky Bernstein
* configure.ac, tests/Makefile.am, tests/.cvsignore,
tests/full.cnf, tests/full.t.in: Add test that we can trigger on
watching processes other than the ones under our account.
-2003-03-06 Thursday 03:54 Rocky Bernstein
+2003-03-06 Thursday 03:54 Rocky Bernstein
* Makefile.am, NEWS, config.guess, configure.ac, docs/Makefile.am,
tests/Makefile.am: Changes for Mac OS/X
-2003-03-04 Tuesday 18:01 Rocky Bernstein
+2003-03-04 Tuesday 18:01 Rocky Bernstein
* aclocal.m4, docs/Makefile.am, tests/Makefile.in: Add more
automake conversion idioms
-2003-03-04 Tuesday 14:14 Rocky Bernstein
+2003-03-04 Tuesday 14:14 Rocky Bernstein
* autogen.sh: Omitted running aclocal, autoconf, automake...
-2003-03-04 Tuesday 14:08 Rocky Bernstein
+2003-03-04 Tuesday 14:08 Rocky Bernstein
* docs/: Makefile.am, Makefile.in: More automake conversion pains.
-2003-03-04 Tuesday 14:05 Rocky Bernstein
+2003-03-04 Tuesday 14:05 Rocky Bernstein
* .cvsignore, MANIFEST: MANIFEST: not used in automake
-2003-03-04 Tuesday 14:03 Rocky Bernstein
+2003-03-04 Tuesday 14:03 Rocky Bernstein
* NEWS, autogen.sh: autogen.sh: useful for CVS NEWS: what's been
happening?
-2003-03-04 Tuesday 13:59 Rocky Bernstein
+2003-03-04 Tuesday 13:59 Rocky Bernstein
* Makefile.am, Makefile.in: More automake conversion work.
Makefile.am: forgot to add Makefile.PL. Makefile.in: superceded
by Makfile.am
-2003-03-04 Tuesday 13:55 Rocky Bernstein
+2003-03-04 Tuesday 13:55 Rocky Bernstein
* AUTHORS, Makefile.am, Makefile.in, NEWS, aclocal.m4, version,
docs/Makefile.am, docs/Makefile.in, tests/Makefile.am,
tests/Makefile.in: Convert to use Makefile.am
-2003-03-04 Tuesday 02:53 Rocky Bernstein
+2003-03-04 Tuesday 02:53 Rocky Bernstein
* configure.ac, ps-watcher.in.in, version, samples/sample.ini,
tests/args.cnf: Changes for BSD/OS. Also potentially a bug in
FreeBSD.
-2003-03-02 Sunday 16:35 Rocky Bernstein
+2003-03-02 Sunday 16:35 Rocky Bernstein
* ps-watcher.in.in: More small document changes. Make HTML come out
a tad better.
-2003-03-02 Sunday 15:28 Rocky Bernstein
+2003-03-02 Sunday 15:28 Rocky Bernstein
* ps-watcher.in.in: Update link for netwinder location!
-2003-03-01 Saturday 21:38 Rocky Bernstein
+2003-03-01 Saturday 21:38 Rocky Bernstein
* MANIFEST: Typo.
-2003-03-01 Saturday 21:37 Rocky Bernstein
+2003-03-01 Saturday 21:37 Rocky Bernstein
* NEWS: What's up.
-2003-03-01 Saturday 21:35 Rocky Bernstein
+2003-03-01 Saturday 21:35 Rocky Bernstein
* MANIFEST: Add Changelog
-2003-03-01 Saturday 21:23 Rocky Bernstein
+2003-03-01 Saturday 21:23 Rocky Bernstein
* samples/sample.ini: Add $args example.
-2003-03-01 Saturday 21:12 Rocky Bernstein
+2003-03-01 Saturday 21:12 Rocky Bernstein
* MANIFEST, configure.ac, ps-watcher.in.in: Add variables to
control what ps can do, e.g. can nuke header line, has custom
title (for nuking header line), what time variable we can test
on.
-2003-03-01 Saturday 21:09 Rocky Bernstein
+2003-03-01 Saturday 21:09 Rocky Bernstein
* tests/: .cvsignore, args.t.in, basic.cnf, basic.cnf.in: Don't
assume etime is a ps-variable. Thanks, FreeBSD.
-2003-03-01 Saturday 21:08 Rocky Bernstein
+2003-03-01 Saturday 21:08 Rocky Bernstein
* docs/Makefile.in: Cater to brain-dead make on FreeBSD.
-2003-02-28 Friday 16:45 Rocky Bernstein
+2003-02-28 Friday 16:45 Rocky Bernstein
* MANIFEST, configure.ac: configure.ac: add freebsd4 check
MANIFEST: add args test files
-2003-02-28 Friday 13:37 Rocky Bernstein
+2003-02-28 Friday 13:37 Rocky Bernstein
* config.sub: Update with more recent version of this.
-2003-02-28 Friday 12:34 Rocky Bernstein
+2003-02-28 Friday 12:34 Rocky Bernstein
* tests/: .cvsignore, args.cnf, args.t.in: Add args regression
test.
-2003-02-28 Friday 12:33 Rocky Bernstein
+2003-02-28 Friday 12:33 Rocky Bernstein
* configure.ac, ps-watcher.in.in, tests/Makefile.in,
tests/basic.cnf, tests/basic.t.in, tests/count.t.in: Add args
documentation and regression tests. count.t.in, basic.t.in: set
perl mode for emacs
-2003-02-27 Thursday 23:46 Rocky Bernstein
+2003-02-27 Thursday 23:46 Rocky Bernstein
* configure.ac, ps-watcher.in.in, version: Add $args variable to
test on entire command. Perpare to make into another version.
-2003-02-27 Thursday 21:21 Rocky Bernstein
+2003-02-27 Thursday 21:21 Rocky Bernstein
* configure.ac: Add args to the list of variables that are
accepted.
-2003-01-27 Monday 22:41 Rocky Bernstein
+2003-01-27 Monday 22:41 Rocky Bernstein
* MANIFEST, configure.stamp, version: MANIFEST: configre.in ->
configure.ac Other files not sure about, but we'll try
initially...
-2003-01-27 Monday 22:37 Rocky Bernstein
+2003-01-27 Monday 22:37 Rocky Bernstein
* configure.ac: Remove touch of stamp file. Dunno...
-2003-01-27 Monday 22:35 Rocky Bernstein
+2003-01-27 Monday 22:35 Rocky Bernstein
* configure.ac: Bump version number.
-2003-01-27 Monday 22:34 Rocky Bernstein
+2003-01-27 Monday 22:34 Rocky Bernstein
* Makefile.in, NEWS, configure.ac, configure.in, ps-watcher.in.in,
samples/sample.ini: Bug in running make dist.
diff --git a/NEWS b/NEWS
index 0f3aabc..b94264e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+Changes from 1.07 to 1.08 (March 15, 2009)
+
+ - pidfile support via Jan Wagner.
+ - Darwin9 support
+
Changes from 1.06 to 1.07 (December 25, 2008)
- Changed to include and tested on Darwin9
@@ -93,4 +98,4 @@ Make "occurs = none" mean to run if there are no matching ps processes.
ps-watcher 0.93 -- first general release.
-$Id: NEWS,v 1.28 2008/12/25 16:39:17 rockyb Exp $
+$Id: NEWS,v 1.29 2009/03/15 06:59:23 rockyb Exp $
diff --git a/THANKS b/THANKS
index 3243bdf..911f9c3 100644
--- a/THANKS
+++ b/THANKS
@@ -13,6 +13,8 @@ James R Grinter suggested and provided code to allow the
program to fire when no matching processes (e.g. when a process that
should be running has died).
+Jan Wagner - Debian packaging and support; pidfile support addition.
+
Thanks to Jason Welsh for helping to track down
a Solaris problem where ps returned multiple lines of output.
@@ -22,7 +24,7 @@ the action statement.
Musicological supervision by Stuart Frankel ,
cutrate Ph.D.
-$Id: THANKS,v 1.8 2006/03/08 19:17:33 rockyb Exp $
+$Id: THANKS,v 1.9 2009/02/19 16:57:31 rockyb Exp $
diff --git a/configure b/configure
index 0eecd2a..722061f 100755
--- a/configure
+++ b/configure
@@ -2007,7 +2007,7 @@ fi
# Define the identity of the package.
PACKAGE=ps-watcher
- VERSION=1.07
+ VERSION=1.08
cat >>confdefs.h <<_ACEOF
diff --git a/configure.ac b/configure.ac
index 7827f85..7c10b4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,11 +18,11 @@ dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
dnl 02110-1301 USA.
-dnl $Id: configure.ac,v 1.43 2008/12/25 16:42:49 rockyb Exp $
+dnl $Id: configure.ac,v 1.45 2009/03/15 06:59:23 rockyb Exp $
dnl Process this file with autoconf to produce a configure script.
AC_INIT(ps-watcher.in.in)
-AM_INIT_AUTOMAKE(ps-watcher,1.07)
+AM_INIT_AUTOMAKE(ps-watcher,1.08)
AM_MISSING_PROG(CVS2CL, cvs2cl, $missing_dir)
AM_MAINTAINER_MODE
diff --git a/docs/ps-watcher.8 b/docs/ps-watcher.8
index d5aff24..2773e4a 100644
--- a/docs/ps-watcher.8
+++ b/docs/ps-watcher.8
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.17 (Pod::Simple 3.07)
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -7,7 +7,7 @@
.if t .Sp
.ne 5
.PP
-\fB\&\\$1\fR
+\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
@@ -132,7 +132,7 @@
.\" ========================================================================
.\"
.IX Title "ps-watcher 8"
-.TH ps-watcher 8 "2008-12-25" "perl v5.8.8" "User Contributed Perl Documentation"
+.TH ps-watcher 8 "2009-03-15" "perl v5.10.0" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/docs/ps-watcher.html b/docs/ps-watcher.html
index 15e83d6..4284db4 100644
--- a/docs/ps-watcher.html
+++ b/docs/ps-watcher.html
@@ -9,8 +9,10 @@
-
+
+
-
@@ -58,7 +62,7 @@
Periodically a list of processes obtained via ps
. More precisely
each item in the list contains the process name (just what's listed in
-the ``cmd'' field, not the full command and arguments) and its process
+the "cmd" field, not the full command and arguments) and its process
id (pid). A configuration file specifies a list of Perl
regular-expression patterns to match the processes against. For each
match, a Perl expression specified for that pattern is evaluated. The
@@ -102,34 +106,34 @@ your configuration).
-- --help
+- --help
-
Print a usage message on standard error and exit with a return code
of 100.
-- --doc
+- --doc
-
Extact the full documentation that you are reading now, print it and
exit with a return code of 101.
-- --version
+- --version
-
Print the version release on standard output and exit with a return
code of 10.
-- --debug number
+- --debug number
-
Give debugging output. The higher the number, the more the output. The
default is 0 = none. 2 is the most debugging output.
-- [--config] configuration file
+- [--config] configuration file
-
Specify configuration file. .
@@ -138,7 +142,7 @@ of the configuration file and EXAMPLE CONFIGURA
example of a configuration file.
-- --log [log file]
+- --log [log file]
-
Send or don't send error and debugging output to a log file. If option
@@ -146,39 +150,39 @@ is given but no logfile is specified, then use STDERR. The default is
no error log file. See also --syslog below.
-- --syslog | --nosyslog
+- --syslog | --nosyslog
-
Send or don't send error and debugging output to syslog. The default
is to syslog error and debug output.
-- --daemon | --nodaemon
+- --daemon | --nodaemon
-
Run or don't as a daemon.
-- --path search-path
+- --path search-path
-
Specify the executable search path used in running commands.
-- --ps-prog program
+- --ps-prog program
-
One can specify the command that gives ps information. By default, the
-command is /bin/ps.
+command is /bin/ps.
-- --run | --norun
+- --run | --norun
-
do/don't run actions go through the motions as though we were going
to. This may be useful in debugging.
-- --sleep interval in seconds
+- --sleep interval in seconds
-
It is expected that one might want to run ps-watcher over and over
@@ -209,7 +213,7 @@ signal.
The format of a configuration file is a series of fully qualified
filenames enclosed in square brackets followed by a number of
parameter lines. Each parameter line has a parameter name followed by
-an ``equal'' sign and finally value. That is:
+an "equal" sign and finally value. That is:
# This is a comment line
; So is this.
@@ -223,36 +227,36 @@ an ``equal'' sign and finally value. That is:
Comments start with # or ; and take effect to the end of the line.
This should be familiar to those who have worked with text-readible
Microsoft .INI
files.
-Note process patterns, (process-pattern1 and process-pattern2
+
Note process patterns, (process-pattern1 and process-pattern2
above) must be unique. If there are times when you may want to
refer to the same process, one can be creative to make these unique.
-e.g. cron and [c]ron which refer to the same process even
+e.g. cron and [c]ron which refer to the same process even
though they appear to be different.
As quoted directly from the Config::IniFiles documentation:
Multiline or multivalued fields may also be defined ala UNIX
-``here document'' syntax:
+"here document" syntax:
Parameter=<<EOT
value/line 1
value/line 2
EOT
-You may use any string you want in place of ``EOT''. Note
-that what follows the ``<<'' and what appears at the end of
+
You may use any string you want in place of "EOT". Note
+that what follows the "<<" and what appears at the end of
the text must match exactly, including any trailing
whitespace.
-There are two special ``process patterns'': $PROLOG and $EPILOG, the
+
There are two special "process patterns": $PROLOG and $EPILOG, the
former should appear first and the latter last.
You can put perl code to initialize variables here and do cleanup
-actions in these sections using ``perl-action.''
+actions in these sections using "perl-action."
A description of parameters names, their meanings and potential values
follows.
-- trigger
+- trigger
-
This parameter specifies the condition on which a process action is
fired. The condition is evaluated with Perl eval()
and should
-therefore return something which is equivalent to ``true'' in a Perl
+therefore return something which is equivalent to "true" in a Perl
expression.
If no trigger is given in a section, true or 1 is assumed and
the action is unconditionally triggered.
@@ -267,23 +271,23 @@ the action is unconditionally triggered.
[httpd$]
trigger = $count <= 4
-- occurs
+- occurs
-
This parameter specifies how many times an action should be performed
on processes matching the section trigger. Acceptable values are
-``every'', ``first'', ``first-trigger'', and ``none''.
-Setting the occurs value to ``none'' causes the the trigger to be
+"every", "first", "first-trigger", and "none".
+Setting the occurs value to "none" causes the the trigger to be
evaluated when there are no matching processes. Although one might
-think ``$count == 0'' in the action expression would do the same thing,
+think "$count == 0" in the action expression would do the same thing,
currently as coded this does not work.
-Setting the occurs value to ``first'' causes the process-pattern rule to
+
Setting the occurs value to "first" causes the process-pattern rule to
be finished after handling the first rule that matches, whether or not the
trigger evaluated to true.
-Setting the occurs value to ``first-trigger'' causes the process-pattern
+
Setting the occurs value to "first-trigger" causes the process-pattern
rule to be finished after handling the first rule that matches and
the trigger evaluates to true.
-If the item parameter is not specified, ``first'' is assumed.
+If the item parameter is not specified, "first" is assumed.
Examples:
[.]
@@ -309,7 +313,7 @@ the trigger evaluates to true.
occurs = none
action = /etc/init.d/syslogd start
-- action
+- action
-
This specifies the action, a command that gets run by the system
@@ -318,7 +322,7 @@ shell, when the trigger condition is evaluated to be true.
action = /etc/init.d/market_loader.init restart
-- perl-action
+- perl-action
-
This specifies Perl statements to be eval'd. This can be especially
@@ -352,25 +356,25 @@ the name of this program ps-watcher.
The following variables can be used in either the pattern or action
fields.
-- $action
+- $action
-
A string containing the text of the action to run.
-- $perl_action
+- $perl_action
-
A string containing the text of the perl_action to run.
-- $ps_pat
+- $ps_pat
-
The Perl regular expression specified in the beginning of the section.
-- $command
+- $command
-
The command that matched $ps_pat.
@@ -387,14 +391,14 @@ case, backticks in $command are escaped.
action = echo \"Looks like you have a big \$command program: \$vsz KB\"
-- $count
+- $count
-
The number of times the pattern matched. Presumably the number of
processes of this class running.
-- $trigger
+- $trigger
-
A string containing the text of the trigger.
@@ -424,7 +428,7 @@ not match depending on which single line of the multiple ps
lines i
used.
-- $args
+- $args
-
The command along with its command arguments. It is possible that this
@@ -432,43 +436,43 @@ is might get truncated at certain length (if ps does likewise as is
the case on Solaris).
-- $ppid
+- $ppid
-
The parent process id.
-- $stime
+- $stime
-
The start time of the process.
-- $etime
+- $etime
-
The end time of the process.
-- $pmem
+- $pmem
-
The process memory.
-- $pcpu
+- $pcpu
-
The percent CPU utilization.
-- $tty
+- $tty
-
The controlling tty.
-- $vsz
+- $vsz
-
Virtual memory size of the process
@@ -540,7 +544,7 @@ and DAYS
respectively and they have the expected definitions:
-
+
Here is an example to show how to use ps-watcher to do something not
really possible from ps: check to see if a port is active. We make
use of lsof to check port 3333 and the $PROLOG make sure it runs.
@@ -609,7 +613,7 @@ variables.
See also ps(1) and syslogd(8).
Another cool program doing ps-like things is xps
. Well okay, it's
another program I distributed. It shows the process tree dynamically
-updated using X Motif and tries to display the output ``attractively''
+updated using X Motif and tries to display the output "attractively"
but fast. You can the find the homepage at
http://motif-pstree.sourceforge.net and it download via
http://prdownloads.sourceforge.net/motif-pstree
diff --git a/ps-watcher b/ps-watcher
index 98a508e..cfde882 100755
--- a/ps-watcher
+++ b/ps-watcher
@@ -1,7 +1,7 @@
#!/usr/bin/perl -w
# -*- Perl -*-
use diagnostics;
-my $vcid='$Id: ps-watcher.in.in,v 1.62 2008/12/23 11:09:24 rockyb Exp $ ';
+my $vcid='$Id: ps-watcher.in.in,v 1.63 2009/02/19 16:57:31 rockyb Exp $ ';
# See usage subroutine or perlpod documentation below.
# Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2008
@@ -23,8 +23,11 @@ my $vcid='$Id: ps-watcher.in.in,v 1.62 2008/12/23 11:09:24 rockyb Exp $ ';
use vars qw($program $ps_cmd $ps_cmdfull $ps_fullcmd_fmt @ps_vars $ps_dvars
$0 $logopened $ps_args_fmt $args
- $count $pid $command $ps_arg_opts $DEVNULL %opts
+ $count $pid $command $ps_arg_opts $DEVNULL %opts $PIDFILE
);
+
+$PIDFILE = "/var/run/ps-watcher.pid";
+
use strict;
BEGIN { require 5.00503 }
@@ -130,6 +133,7 @@ sub gather_psinfo();
sub read_config($);
sub check_config_file($);
sub run_trigger($$$);
+sub check_pid();
init();
process_options();
@@ -147,7 +151,12 @@ if (!defined($cfg)) {
}
if ($opts{daemon}) {
- daemonize();
+ if (! check_pid()) {
+ exit 1;
+ }
+ if (! daemonize()) {
+ exit 1;
+ }
}
install_handlers();
@@ -586,14 +595,62 @@ PARTICULAR PURPOSE.
exit 10;
}
+sub check_pid() {
+ if (-f $PIDFILE) {
+ if (open(PID,$PIDFILE)) {
+ my $pid = ;
+ if (!close(PID)) {
+ logger("Unable to close file handle PID for file '$PIDFILE': $!");
+ return;
+ }
+ if (-f "/proc/$pid/stat") {
+ if (open(FH,"/proc/$pid/stat")) {
+ my $line = ;
+ if (!close(FH)) {
+ logger("Unable to close file handle FH for file '/proc/$pid/stat': $!");
+ return;
+ }
+ if ($line =~ /\d+[^(]*\((.*)\)\s*/) {
+ my $process = $1;
+ if ($process =~ /^$program$/) {
+ logger("$program already running at PID $pid; exiting.");
+ exit(0);
+ }
+ }
+ } else {
+ logger("Unable to open file handle FH for file '/proc/$pid/stat': $!");
+ return;
+ }
+ } else {
+ logger("Removing stale PID file.");
+ unlink($PIDFILE);
+ }
+ }else{
+ logger("Unable to open file handle PID for file '$PIDFILE': $!");
+ return;
+ }
+ }
+ return 1;
+}
sub daemonize() {
chdir '/' or die "Can't chdir to /: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit 0 if $pid;
+ if (open(FH,">$PIDFILE")) {
+ print FH $$;
+ if (!close(FH)) {
+ logger("Unable to close file handle FH for file '$PIDFILE': $!");
+ return;
+ }
+ } else {
+ logger("Unable to open file handle FH for file '$PIDFILE': $!");
+ return;
+ }
use POSIX qw(setsid);
setsid() or die "Can't start a new session: $!";
umask 0;
+ return 1;
}
# Time configuration file was last read.
diff --git a/ps-watcher.in.in b/ps-watcher.in.in
index e285184..ff630af 100755
--- a/ps-watcher.in.in
+++ b/ps-watcher.in.in
@@ -1,7 +1,7 @@
#!@PERL@ -w
# -*- Perl -*-
use diagnostics;
-my $vcid='$Id: ps-watcher.in.in,v 1.62 2008/12/23 11:09:24 rockyb Exp $ ';
+my $vcid='$Id: ps-watcher.in.in,v 1.63 2009/02/19 16:57:31 rockyb Exp $ ';
# See usage subroutine or perlpod documentation below.
# Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2008
@@ -23,8 +23,11 @@ my $vcid='$Id: ps-watcher.in.in,v 1.62 2008/12/23 11:09:24 rockyb Exp $ ';
use vars qw($program $ps_cmd $ps_cmdfull $ps_fullcmd_fmt @ps_vars $ps_dvars
$0 $logopened $ps_args_fmt $args
- $count $pid $command $ps_arg_opts $DEVNULL %opts
+ $count $pid $command $ps_arg_opts $DEVNULL %opts $PIDFILE
);
+
+$PIDFILE = "/var/run/ps-watcher.pid";
+
use strict;
BEGIN { require 5.00503 }
@@ -130,6 +133,7 @@ sub gather_psinfo();
sub read_config($);
sub check_config_file($);
sub run_trigger($$$);
+sub check_pid();
init();
process_options();
@@ -147,7 +151,12 @@ if (!defined($cfg)) {
}
if ($opts{daemon}) {
- daemonize();
+ if (! check_pid()) {
+ exit 1;
+ }
+ if (! daemonize()) {
+ exit 1;
+ }
}
install_handlers();
@@ -576,14 +585,62 @@ PARTICULAR PURPOSE.
exit 10;
}
+sub check_pid() {
+ if (-f $PIDFILE) {
+ if (open(PID,$PIDFILE)) {
+ my $pid = ;
+ if (!close(PID)) {
+ logger("Unable to close file handle PID for file '$PIDFILE': $!");
+ return;
+ }
+ if (-f "/proc/$pid/stat") {
+ if (open(FH,"/proc/$pid/stat")) {
+ my $line = ;
+ if (!close(FH)) {
+ logger("Unable to close file handle FH for file '/proc/$pid/stat': $!");
+ return;
+ }
+ if ($line =~ /\d+[^(]*\((.*)\)\s*/) {
+ my $process = $1;
+ if ($process =~ /^$program$/) {
+ logger("$program already running at PID $pid; exiting.");
+ exit(0);
+ }
+ }
+ } else {
+ logger("Unable to open file handle FH for file '/proc/$pid/stat': $!");
+ return;
+ }
+ } else {
+ logger("Removing stale PID file.");
+ unlink($PIDFILE);
+ }
+ }else{
+ logger("Unable to open file handle PID for file '$PIDFILE': $!");
+ return;
+ }
+ }
+ return 1;
+}
sub daemonize() {
chdir '/' or die "Can't chdir to /: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit 0 if $pid;
+ if (open(FH,">$PIDFILE")) {
+ print FH $$;
+ if (!close(FH)) {
+ logger("Unable to close file handle FH for file '$PIDFILE': $!");
+ return;
+ }
+ } else {
+ logger("Unable to open file handle FH for file '$PIDFILE': $!");
+ return;
+ }
use POSIX qw(setsid);
setsid() or die "Can't start a new session: $!";
umask 0;
+ return 1;
}
# Time configuration file was last read.