Alan Jenkins 50463a6a10 Daemonize(): use one error convention, not three
Standardize on exit() / _exit() (this depends whether we are considered
to be the "main" fork, which should run anything registered with atexit()).
Exclude `return false` and throwing exceptions.

This fixes the error path for fork().  Daemonize() would return false, but
the `return false` error convention was not tested in the caller.

It also fixes the error message for fork() to show the error code.
Everyone loves `strace`, but sysadmins should not have to rerun their
daemons under it just to see an error code.

Also in case an exception is thrown, show its diagnostic information
instead of dropping it on the floor.  In the log message, I mention why we
are uninitializing and then initializing the app at this point.

For the reader, it pushes all the weirdness into the error convention of
Daemonize().  This comes back to the exit() / _exit() distinction.  Once
we have forked, we technically don't want to allow the parent process to
exit(), so we don't want to return to the caller.
2018-08-25 10:07:02 +01:00
2017-04-06 10:48:11 +02:00
2018-07-23 19:52:57 +02:00
2018-08-13 15:27:05 +02:00
2018-07-21 10:38:09 +02:00
2018-08-03 11:11:39 +02:00
2018-07-16 17:00:39 +02:00
2018-08-03 11:11:39 +02:00
2018-07-24 12:53:07 +02:00
2018-07-24 12:53:07 +02:00
2013-11-03 13:45:26 +01:00
2017-10-23 10:07:31 +02:00
2018-05-29 14:12:11 +02:00
2018-07-17 14:27:32 +02:00
2018-07-24 12:53:07 +02:00

Build Status

Icinga 2

Icinga Logo

Table of Contents

  1. About
  2. License
  3. Installation
  4. Documentation
  5. Support
  6. Contributing

About

Icinga 2 is an open source monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting.

Scalable and extensible, Icinga 2 can monitor large, complex environments across multiple locations.

Icinga 2 as monitoring core works best with Icinga Web 2 as web interface.

More information can be found at www.icinga.com and inside the documentation.

Licensing

Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU General Public License Version 2, you will find a copy of this license in the COPYING file included in the source package.

In addition, as a special exception, the copyright holders give permission to link the code of portions of this program with the OpenSSL library under certain conditions as described in each individual source file, and distribute linked combinations including the two.

You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL. If you modify file(s) with this exception, you may extend this exception to your version of the file(s), but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. If you delete this exception statement from all source files in the program, then also delete it here.

Installation

Read the INSTALL.md file for more information about how to install it.

Documentation

The documentation is located in the doc/ directory. The latest documentation is also available on https://docs.icinga.com

Support

Check the project website at https://www.icinga.com for status updates. Join the community channels for questions or ask an Icinga partner for professional support.

Contributing

There are many ways to contribute to Icinga -- whether it be sending patches, testing, reporting bugs, or reviewing and updating the documentation. Every contribution is appreciated!

Please continue reading in the contributing chapter.

Description
The core of our monitoring platform with a powerful configuration language and REST API.
Readme 182 MiB
Languages
C++ 92.8%
CMake 2.9%
PLpgSQL 2%
C# 0.7%
Vim Script 0.5%
Other 1%