Commit Graph

23 Commits

Author SHA1 Message Date
Michael Friedrich 6a4c5e6bcb Imitialize ICINGA2_ERROR_LOG inside the Systemd environment
The initscript uses a local default, which is not here for Systemd.
2018-11-13 14:02:03 +01:00
Schanz, Jens 2754175c6e fixes #6758
Add target network-online.target as requirement.
Service Icinga2 won't start before target is finally reached.
This prevents Icinga2 from failing if no entry for hostname.domain
is set in /etc/hosts
2018-11-09 13:17:08 +01:00
Alan Jenkins a21166dcf8 Fix logging under systemd
icinga2.service used `-e ${ICINGA2_ERROR_LOG}`, but this is documented
as having no effect without `-d`.  Furthermore, icinga2 under systemd
unconditionally logged everything to the system log (but without setting
the log level etc), which contradicted the documentation.  (Issue #6339)

Stop icinga2 on systemd from logging to stdout - and hence the system log -
once it has finished starting up.  Just like when you start icinga2 from a
terminal using `-d`.  And just like -d, we stop logging fatal errors to
stderr, and instead write to the log file passed with `-e`.

As per docs, mainlog (icinga2.log) is already enabled by default.  And
pre-startup messages including config errors will still appear in the
system log.

This uses a new option --close-stdio, which has the same effect on logging as
--daemonize, but does not fork or call setsid().

For this purpose, I moved setsid() up and into Daemonize().

Consequence of that last point: if anyone is weird enough to specify a TTY
device file as the fatal error log (-e option), that will become icinga's
controlling terminal, which you generally don't want as a daemon.  This
makes it consistent with the existing behaviour for icinga mainlog.  For
this reason you're supposed to use O_NOCTTY in Linux daemons.  But I wasn't
sure where icinga would want to put the ugly `#ifdef _WIN32 ... #else ...`.
2018-08-25 10:21:06 +01:00
Markus Frosch 9fbc40615a Improve path handling in cmake and daemon 2018-08-07 14:10:26 +02:00
Michael Friedrich c4c6f2064d Revert "Fix obsolete parameter in Systemd script"
This reverts commit 592fb22c7f.

We have the problem that Systemd doesn't expand shell variables
into our environment.

During the upgrade cycle this would maybe render a wrong PID file
location, thus resulting in wrong 'safe-reload' behaviour.

This is only for a clean upgrade path from 2.8.x to 2.9.0,
the proper fix is to ensure that the sysconfig file is empty
and keep our own defaults, or modified from the user.

refs #6434
2018-07-17 14:10:26 +02:00
Michael Friedrich 592fb22c7f Fix obsolete parameter in Systemd script
refs #6328
2018-06-05 14:03:39 +02:00
Jean Flach c418a9611e Add systemd watchdog and adjust reload behaviour 2018-01-19 16:52:36 +01:00
Markus Frosch c90dc34edb Improve documentation and Systemd config for TasksMax setting
This also disables setting a value by default.

Packaging should decide to install the config file:
`/etc/systemd/system/icinga2.service.d`

fixes #5611

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2017-09-29 17:34:32 +02:00
Michael Friedrich 874e005284 Systemd: Add DefaultTasksMax=infinity to service file
This solves the problem with Systemd >= 226 and fork errors with
Icinga 2. Seen on SLES 11 SP2.

fixes #4918
2017-08-08 16:11:40 +02:00
Dirk Goetz 7608acd0e2 improve systemd service file 2017-04-04 09:27:19 +02:00
Gunnar Beutner 256d936661 Increase systemd startup timeout
fixes #12237
2016-07-27 07:44:11 +02:00
Lee Clemens 984eaf5a1f Add network.target to unit file
Icinga2 fails with 'Cannot bind TCP socket for host',
if other services requiring network.target are not installed.

Signed-off-by: Jean Flach <jean-marcel.flach@netways.de>

fixes #10968
2016-01-14 10:11:38 +01:00
Gunnar Beutner bd7b2f30ef Validate configuration files during reload
fixes #7045
2014-12-11 09:27:31 +01:00
Gunnar Beutner 7ee0eef562 Move the icinga2-prepare-dirs script to /usr/lib
fixes #7786
2014-11-27 14:47:51 +01:00
Gunnar Beutner ac47649722 Remove unnecessary arguments from the systemd service file 2014-10-17 14:37:43 +02:00
Michael Friedrich a895a6236a Fix systemd unit file
refs #7246
2014-10-16 12:08:21 +02:00
Gunnar Beutner a4081f1445 Implement support for CLI commands
fixes #7246
2014-10-08 15:33:10 +02:00
Gunnar Beutner a49a598eef Make location of the /run directory configurable
fixes #6627
2014-07-22 13:26:37 +02:00
Gerd von Egidy 9667fb40b7 Improve the systemd service definition file
- put "Icinga" back in the "Description=" field as usually only the description is displayed on unit start/stop or shown in syslog
- add dependency to carbon-cache.service
(systemd only cares about dependencies if the respective services are enabled, so this does not hurt if someone does not have carbon-cache
installed at all or is not using it at the moment)

fixes #6551

Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de>
2014-06-24 13:40:44 +02:00
Gerd von Egidy dd9b7bcd73 Move the sysdefines.conf file to /etc/sysconfig.
As /etc/sysconfig is distro specific, the filename used can be configured via the CMake parameter
ICINGA2_SYSCONFIGFILE

Refs #4794
2014-06-15 19:47:27 +02:00
Sam Kottler 4568f68f90 Remove mention of icinga in the description since it's already in the name and might cause versioning confusion
Refs #4794
2014-06-15 17:00:30 +02:00
Gerd von Egidy 4ebde46520 Move code preparing dirs and permissions to icinga2-prepare-dirs, use this for SysV-Init and systemd.
Refs #4794

Conflicts:
	etc/initsystem/icinga2.init.d.cmake
2014-06-15 16:25:50 +02:00
Gerd von Egidy ef49658474 Unify resources for SysV-Init and systemd.
- Move system-specific defines like paths and usernames to /etc/icinga2/sysdefines.conf
  Do not use /etc/sysconfig for this as per suggestion on the systemd mailinglist: it is RedHat-specific
- Use /etc/icinga2/sysdefines.conf in SysV-Init and systemd
- Move both the sources of the SysV-Initscript and the systemd-service definition to etc/initsystem

Refs #4794

Conflicts:
	etc/initsystem/icinga2.init.d.cmake
2014-06-15 15:49:13 +02:00