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 @@ -

+ + -

NAME

@@ -58,7 +62,7 @@

DESCRIPTION

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).

OPTIONS

-
--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:


-

Using $PROLOG for getting non-ps information

+

Using $PROLOG for getting non-ps information

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.