Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
perpok(8)		 persistent process supervision 	       perpok(8)

NAME
     perpok - check a perpd(8) service

SYNOPSIS
     perpok [-hV] [-b basedir ] [-u secs ] [-v] sv

DESCRIPTION
     perpok  is  used to check that the service sv is actively running under su-
     pervision of perpd(8).

     The argument sv should be a  service  definition  directory  supervised  by
     perpd(8).	 perpok  will look for sv in the directory given with the -b op-
     tion, or as set in the PERP_BASE environmental variable, or in the  current
     directory if neither of the previous is given.

     perpok  returns 0 to indicate success if the definition directory sv exists
     and is under the active supervision of perpd(8).

     The -u option may be given to specify a minimum uptime in	secs.	In  this
     case, perpok will further check that the main service itself is running, is
     not  resetting,  does  not want down, and that its uptime has been at least
     secs seconds.  If all these conditions are met, perpok returns 0  to  indi-
     cate success.

     If the conditions for success are not met, perpok exits non-zero.

     perpok  is intended primarily as a utility for boolean testing in scripting
     environments.  See the perpstat(8) and perpls(8)  utilities  for  more  de-
     tailed status reporting.

OPTIONS
     -b basedir
	    Base directory.  Sets the base directory containing the service def-
	    inition  sv.  If not set, perpok will use the value set in the vari-
	    able PERP_BASE, or the current directory if neither of these are de-
	    fined.  On a normal system, the base directory will be /etc/perp.

     -h     Help.  Print a brief usage message to stderr and exit.

     -u secs
	    Uptime.  Normally perpok checks only that the sv directory is active
	    (exists and is sticky), and that perpd(8)  is  actively  supervising
	    it.  This option extends the checks performed by perpok to test that
	    the  main service itself is running, is not resetting, does not want
	    down, and that its uptime has been at least secs seconds.	Normally
	    it	is  sensible  to  set  secs to some small value, such as 2 or 3,
	    which is just long enough to check that the service is  not  cycling
	    on restarts.

     -V     Version.  Print the version number to stderr and exit.

     -v     Verbose.   Normally perpok exits silently, as it is designed primar-
	    ily for runscripts that might use it to  perform  simple  dependency
	    checks  prior  to  starting  their own services.  This option causes
	    perpok to print a message reporting either	success  or  failure  to
	    stderr on exit.

EXAMPLES
     perpok  may  be  used as a basic dependency checking utility within service
     runscripts:

	    #!/bin/sh
	    if test ${1} = "start" ; then
	      if ! perpok -u3 foo ; then
		echo "dependency foo not running"
		exit 1
	      fi
	      # otherwise foo ok, continue to start service:
	      exec /usr/bin/bar ...
	    fi

     This example shows a runscript for a ``bar'' service that	uses  perpok  to
     require a dependency on another service named ``foo''.  If foo has not been
     running  for  at  least  3  seconds,  the runscript exits immediately.  The
     perpd(8) supervisor running this service will then continue to try restart-
     ing it at one second intervals, until the perpok dependency check succeeds.

     Note that, when using perpok in a normal collection of services running un-
     der perpd(8), PERP_BASE will always be properly predefined in the runscript
     environment.

EXIT STATUS
     perpok exits with the following values:

     0	    Success.  The service sv is active and  a  perpd(8)  supervisor  has
	    been  found running for it.  Additionally, if the -u option has been
	    given, the main service itself has been found  running,  not  reset-
	    ting, not wanting down, and with an uptime of at least secs seconds.

     1	    Failure.   The service directory sv was found not to be active, or a
	    perpd(8) supervisor was not found running for it, or the  additional
	    constraints  imposed for uptime checking with the -u option were not
	    met.

     100    Usage error.  For unknown options, missing arguments, or if sv  does
	    not  name  a directory.  Prints a brief diagnostic message to stderr
	    on exit.

     111    System error.  Unexpected failures during  system  calls,  privilege
	    and/or  resource  problems,  or configuration errors in the perpd(8)
	    system.  Prints a brief diagnostic message to stderr on exit.

CAVEATS
     For use as a dependency tool, perpok by itself is of  course  limited.   As
     illustrated in the example section above, perpok may find a dependency run-
     ning  okay  at  startup, but there is no guarantee that it will continue to
     run for as long as the dependent service requires it.

     A collection of services running under perpd(8) tends to  be  reliable,  so
     that the use of perpok for basic dependency checking at startup is normally
     adequate.	 Interrelated  services  may also use perpok in combination with
     runscript reset targets to implement a system of stricter	dependency  con-
     trols.

AUTHOR
     Wayne Marshall, http://b0llix.net/perp/

SEE ALSO
     perp_intro(8),    perpboot(8),    perpctl(8),    perpd(8),   perpetrate(5),
     perphup(8), perpls(8), perpstat(8), sissylog(8), tinylog(8)

perp-2.07			  January 2013			       perpok(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=perpok&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help