diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/src/pmdashutdown.c | |
download | pcp-debian/3.9.10.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/src/pmdashutdown.c')
-rw-r--r-- | qa/src/pmdashutdown.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/qa/src/pmdashutdown.c b/qa/src/pmdashutdown.c new file mode 100644 index 0000000..fe1a0e3 --- /dev/null +++ b/qa/src/pmdashutdown.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 1997-2002 Silicon Graphics, Inc. All Rights Reserved. + */ + +#include <pcp/pmapi.h> +#include <pcp/impl.h> +#include <pcp/pmda.h> + +static void +usage(void) +{ + fprintf(stderr, "Usage: %s [options]\n\n", pmProgname); + fputs("Options:\n" + " -D N set pmDebug debugging flag to N\n" + " -d domain use domain (numeric) for metrics domain of PMDA\n" + " -h helpfile get help text from helpfile rather then default path\n" + " -l logfile write log into logfile rather than using default log name\n" + "\nExactly one of the following options may appear:\n" + " -i port expect PMCD to connect on given inet port (number or name)\n" + " -p expect PMCD to supply stdin/stdout (pipe)\n" + " -u socket expect PMCD to connect on given unix domain socket\n" + " -6 port expect PMCD to connect on given ipv6 port (number or name)\n", + stderr); + exit(1); +} + +int +main(int argc, char *argv[]) +{ + int err = 0; + pmdaInterface desc = { 0 }; + + __pmSetProgname(argv[0]); + + /* + * Honour the pmcd connection protocol ... + */ + pmdaDaemon(&desc, PMDA_INTERFACE_3, pmProgname, desc.domain, "pmdashutdown.log", NULL); + if (desc.status != 0) { + fprintf(stderr, "pmdaDaemon() failed!\n"); + exit(1); + } + if (pmdaGetOpt(argc, argv, "D:d:h:i:l:pu:6:", &desc, &err) != EOF) + err++; + if (err) + usage(); + + pmdaOpenLog(&desc); + pmdaConnect(&desc); + + /* + * if we exit immediately the smarter pmcd agent initialization + * will notice, and report unexpected end-of-file ... so sleep + * for longer than pmcd is willing to wait, then exit + */ + sleep(10); + + fprintf(stderr, "%s terminated\n", pmProgname); + exit(0); +} |