summaryrefslogtreecommitdiff
path: root/dev-util/lockrun
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:57:42 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:57:42 +0100
commit1798c4aeca70ac8d0a243684d6a798fbc65735f8 (patch)
treee48e19cb6fa03de18e1c63e1a93371b7ebc4eb56 /dev-util/lockrun
parentd87262dd706fec50cd150aab3e93883b6337466d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-util/lockrun')
-rw-r--r--dev-util/lockrun/Manifest3
-rw-r--r--dev-util/lockrun/files/lockrun.c-20120508294
-rw-r--r--dev-util/lockrun/lockrun-20120508-r1.ebuild30
-rw-r--r--dev-util/lockrun/metadata.xml5
4 files changed, 0 insertions, 332 deletions
diff --git a/dev-util/lockrun/Manifest b/dev-util/lockrun/Manifest
deleted file mode 100644
index 17bdaccb5d13..000000000000
--- a/dev-util/lockrun/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-AUX lockrun.c-20120508 7025 BLAKE2B fe577a1e360c0595a2448ed03f7af1a049327e21b6f4caba6d69659e557a527c16f07e80b2591d4dfa1633e1a77a78bb1cd9f231ca4fec3ef261cbadf284c4ca SHA512 f800e96d41d11c9b6f7e28c5bd1f2b59b824ccba5f093574d8f4df8e737f2df47c3f8e89a08eee81b9c3fb46377e62be9c5ddf83df253fd0ab3a25a85a8bee0b
-EBUILD lockrun-20120508-r1.ebuild 599 BLAKE2B 8c25e4eeb05110a23a76132c681a48e2003a4623343050d8f2b681e42f3b2b656ad332115ea2d25c0c72fb5909007a0993cc9b3260e6cb2496d3d19f5890242b SHA512 45706c14e51631261c1c9ea22eb626c847eea47686f66ddc9b5d463607f5bfe073eca56e2ab5d6668367cc7c91c2e5730d2308515a62f109bdc6ec5db5118d0c
-MISC metadata.xml 166 BLAKE2B c254f1fb642881aba57637be14fb0a89b10384f91a128feaec3a8c870d76efc2cbacb92caccc0dee2dd19a5ac5eaf8643080dafa05c4e2ac96a68568927e5afd SHA512 a56648c974a1d14dd4c18237532773c72057a13ab90c58b5da04f185e3c12a8bd8d5c21fb06053507f31766291a82dc7d87b34cd65fd94cfe2af7295c813ef84
diff --git a/dev-util/lockrun/files/lockrun.c-20120508 b/dev-util/lockrun/files/lockrun.c-20120508
deleted file mode 100644
index 51da6c71fa4a..000000000000
--- a/dev-util/lockrun/files/lockrun.c-20120508
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * $Id: //websites/unixwiz/unixwiz.net/webroot/tools/lockrun.c#5 $
- *
- * written by : Stephen J. Friedl
- * Software Consultant
- * steve@unixwiz.net
- * http://www.unixwiz.net/tools/
- *
- * ===================================================================
- * ======== This software is in the public domain, and can be ========
- * ======== used by anybody for any purpose ========
- * ===================================================================
- *
- * Lockrun: This program is used to launch a program out with a lockout
- * so that only one can run at a time. It's mainly intended for use out
- * of cron so that our five-minute running jobs which run long don't get
- * walked on. We find this a *lot* with Cacti jobs which just get hung
- * up: it's better to miss a polling period than to stack them up and
- * slow each other down.
- *
- * So we use a file which is used for locking: this program attempts to
- * lock the file, and if the lock exists, we have to either exit with
- * an error, or wait for it to release.
- *
- * lockrun --lockfile=FILE -- my command here
- *
- * COMMAND LINE
- * ------------
- *
- * --lockfile=F
- *
- * Specify the name of a file which is used for locking. The file is
- * created if necessary (with mode 0666), and no I/O of any kind is
- * done. The file is never removed.
- *
- * --maxtime=N
- *
- * The script being controlled should run for no more than <N> seconds,
- * and if it's beyond that time, we should report it to the standard
- * error (which probably gets routed to the user via cron's email).
- *
- * --wait
- *
- * When a lock is hit, we normally exit with error, but --wait causes
- * it to loop until the lock is released.
- *
- * --verbose
- *
- * Show a bit more runtime debugging.
- *
- * --quiet
- *
- * Don't show "run is locked" error if things are busy; keeps cron from
- * overwhelming you with messages if lockrun overlap is not uncommon.
- *
- * --
- *
- * Mark the end of the options: the command to run follows.
- *
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/file.h>
-
-#ifndef __GNUC__
-# define __attribute__(x) /* nothing */
-#endif
-
-
-#define STRMATCH(a,b) (strcmp((a),(b)) == 0)
-
-#define UNUSED_PARAMETER(v) ((void)(v))
-
-#define TRUE 1
-#define FALSE 0
-
-static const char *lockfile = 0;
-static int wait_for_lock = FALSE;
-static mode_t openmode = 0666;
-static int sleeptime = 10; /* seconds */
-static int Verbose = FALSE;
-static int Maxtime = 0;
-static int Quiet = FALSE;
-
-static char *getarg(char *opt, char ***pargv);
-
-static void die(const char *format, ...)
- __attribute__((noreturn))
- __attribute__((format(printf, 1, 2)));
-
-#ifdef __sun
-# define WAIT_AND_LOCK(fd) lockf(fd, F_TLOCK,0)
-#else
-# define WAIT_AND_LOCK(fd) flock(fd, LOCK_EX | LOCK_NB)
-#endif
-
-int main(int argc, char **argv)
-{
- char *Argv0 = *argv;
- int rc;
- int lfd;
- pid_t childpid;
- time_t starttime;
-
- UNUSED_PARAMETER(argc);
-
- time(&starttime);
-
- for ( argv++ ; *argv ; argv++ )
- {
- char *arg = *argv;
- char *opt = strchr(arg, '=');
-
- /* the -- token marks the end of the list */
-
- if ( strcmp(*argv, "--") == 0 )
- {
- argv++;
- break;
- }
-
- if (opt) *opt++ = '\0'; /* pick off the =VALUE part */
-
- if ( STRMATCH(arg, "-L") || STRMATCH(arg, "--lockfile"))
- {
- lockfile = getarg(opt, &argv);
- }
-
- else if ( STRMATCH(arg, "-W") || STRMATCH(arg, "--wait"))
- {
- wait_for_lock = TRUE;
- }
-
- else if ( STRMATCH(arg, "-S") || STRMATCH(arg, "--sleep"))
- {
- sleeptime = atoi(getarg(opt, &argv));
- }
-
- else if ( STRMATCH(arg, "-T") || STRMATCH(arg, "--maxtime"))
- {
- Maxtime = atoi(getarg(opt, &argv));
- }
-
- else if ( STRMATCH(arg, "-V") || STRMATCH(arg, "--verbose"))
- {
- Verbose++;
- }
-
- else if ( STRMATCH(arg, "-q") || STRMATCH(arg, "--quiet"))
- {
- Quiet = TRUE;
- }
-
- else
- {
- die("ERROR: \"%s\" is an invalid cmdline param", arg);
- }
- }
-
- /*----------------------------------------------------------------
- * SANITY CHECKING
- *
- * Make sure that we have all the parameters we require
- */
- if (*argv == 0)
- die("ERROR: missing command to %s (must follow \"--\" marker) ", Argv0);
-
- if (lockfile == 0)
- die("ERROR: missing --lockfile=F parameter");
-
- /*----------------------------------------------------------------
- * Open or create the lockfile, then try to acquire the lock. If
- * the lock is acquired immediately (==0), then we're done, but
- * if the lock is not available, we have to wait for it.
- *
- * We can either loop trying for the lock (for --wait), or exit
- * with error.
- */
-
- if ( (lfd = open(lockfile, O_RDWR|O_CREAT, openmode)) < 0)
- die("ERROR: cannot open(%s) [err=%s]", lockfile, strerror(errno));
-
- while ( WAIT_AND_LOCK(lfd) != 0 )
- {
- if ( ! wait_for_lock )
- {
- if ( Quiet)
- exit(EXIT_SUCCESS);
- else
- die("ERROR: cannot launch %s - run is locked", argv[0]);
- }
-
- /* waiting */
- if ( Verbose ) printf("(locked: sleeping %d secs)\n", sleeptime);
-
- sleep(sleeptime);
- }
-
- fflush(stdout);
-
- /* run the child */
-
-
- if ( (childpid = fork()) == 0 )
- {
- close(lfd); // don't need the lock file
-
- execvp(argv[0], argv);
- }
- else if ( childpid > 0 )
- {
- time_t endtime;
- pid_t pid;
-
- if ( Verbose )
- printf("Waiting for process %ld\n", (long) childpid);
-
- pid = waitpid(childpid, &rc, 0);
-
- time(&endtime);
-
- endtime -= starttime;
-
- if ( Verbose || (Maxtime > 0 && endtime > Maxtime) )
- printf("pid %d exited with status %d (time=%ld sec)\n", pid, rc, endtime);
- }
- else
- {
- die("ERROR: cannot fork [%s]", strerror(errno));
- }
-
- exit(rc);
-}
-
-
-/*! \fn static char *getarg(char *opt, char ***pargv)
- * \brief A function to parse calling parameters
- *
- * This is a helper for the main arg-processing loop: we work with
- * options which are either of the form "-X=FOO" or "-X FOO"; we
- * want an easy way to handle either one.
- *
- * The idea is that if the parameter has an = sign, we use the rest
- * of that same argv[X] string, otherwise we have to get the *next*
- * argv[X] string. But it's an error if an option-requiring param
- * is at the end of the list with no argument to follow.
- *
- * The option name could be of the form "-C" or "--conf", but we
- * grab it from the existing argv[] so we can report it well.
- *
- * \return character pointer to the argument
- *
- */
-static char *getarg(char *opt, char ***pargv)
-{
- const char *const optname = **pargv;
-
- /* option already set? */
- if (opt) return opt;
-
- /* advance to next argv[] and try that one */
- if ((opt = *++(*pargv)) == 0)
- die("ERROR: option %s requires a parameter", optname);
-
- return opt;
-}
-
-/*
- * die()
- *
- * Given a printf-style argument list, format it to the standard error,
- * append a newline, then exit with error status.
- */
-
-static void die(const char *format, ...)
-{
-va_list args;
-
- va_start(args, format);
- vfprintf(stderr, format, args);
- putc('\n', stderr);
- va_end(args);
-
- exit(EXIT_FAILURE);
-}
diff --git a/dev-util/lockrun/lockrun-20120508-r1.ebuild b/dev-util/lockrun/lockrun-20120508-r1.ebuild
deleted file mode 100644
index f062acca8481..000000000000
--- a/dev-util/lockrun/lockrun-20120508-r1.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit toolchain-funcs
-
-DESCRIPTION="Lockrun - runs cronjobs with overrun protection"
-HOMEPAGE="http://www.unixwiz.net/tools/lockrun.html"
-
-LICENSE="public-domain"
-SLOT="0"
-KEYWORDS="amd64 ~hppa x86"
-
-S="${WORKDIR}"
-
-src_unpack() {
- cp -v "${FILESDIR}"/${PN}.c-${PV} "${S}"/${PN}.c || die
- cp -v "${FILESDIR}"/${PN}.c-${PV} "${S}"/README || die
-}
-
-src_compile() {
- emake CC=$(tc-getCC) ${PN}
- sed -i README -e '60q;s|^ \*||g' || die
-}
-
-src_install () {
- dobin ${PN}
- einstalldocs
-}
diff --git a/dev-util/lockrun/metadata.xml b/dev-util/lockrun/metadata.xml
deleted file mode 100644
index 6f49eba8f496..000000000000
--- a/dev-util/lockrun/metadata.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<!-- maintainer-needed -->
-</pkgmetadata>