############################################################################# # # This Cplant(TM) source code is the property of Sandia National # Laboratories. # # This Cplant(TM) source code is copyrighted by Sandia National # Laboratories. # # The redistribution of this Cplant(TM) source code is subject to the # terms of the GNU Lesser General Public License # (see cit/LGPL or http://www.gnu.org/licenses/lgpl.html) # # Cplant(TM) Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Sandia Corporation. # Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive # license for use of this work by or on behalf of the US Government. # Export of this program may require a license from the United States # Government. # ############################################################################# # # $Id: status_daemon_flow 2572 2004-08-05 20:25:03Z nwdauch $ # Process Flow Diagram for CIToolkit Status Daemon ------------------------------------------------ The diagram below shows how the various parts of the Status Daemon are born, how they communicate, and what happens when they die. --- indicates process flow === indicates data flow ... indicates return codes Server::_fork_status_checks() | fork! ---->---. | | (completely separate from parent) | fork! ---->---. | | | |<== pid ==/| setsid (start a new process group) | | | | (exit) | | | | .-----<-----. | | | Server::Checks::start() | | | | initialize tests and set timer | \ | while(1) >-- foreach action -->--. | / / | | | | background() | | ^ | | | | fork! ---->--. | | | | | | | \-------<------/| | | | | Status::run_my_test() | | | | | | reset timer | Status::saferun() | | | | | \---<--- sleep()---<----/ fork! ----->---. | | | | | exec test script | | | | |<==stdout==/| | | | | |<....rc...(exit) | | |<========= socket (flattened object) <=========/| | | | (exit) ...