Select Git revision
centreond 3.84 KiB
#!/usr/bin/perl
use strict;
use Getopt::Long;
use Config::IniFiles;
use Sys::Hostname;
use DBI;
use Module::Util qw(:all);
use centreon::common::logger;
use centreon::daemon::crypt;
use centreon::daemon::processus;
use centreon::daemon::events qw(emit);
my $configFile = '/etc/centreon/centreon.ini';
my $keygen = 0;
GetOptions(
"config=s" => \$configFile,
"keygen" => \$keygen
) or die("Error in command line arguments.");
if (!-f $configFile) {
print("The configuration file does not exists.\n");
exit 2;
}
my $config = Config::IniFiles->new(
-file => $configFile,
-nomultiline => 1
);
# Generate keyfile if ask
if ($keygen) {
centreon::daemon::crypt::generateKeys("/tmp", "central", "test");
exit 1;
}
# List of server type
#
# central : Run server in Central with database
# poller : Run server to a poller
my $serverType = "central";
if ($config->exists("centreond", "type")) {
$serverType = $config->val("centreond", "type");
}
my $pollername = hostname();
# Initialize log file
our $logger = centreon::common::logger->new();
if ($config->exists("centreond", "log_lvl")) {
$logger->severity($config->val("centreond", "log_lvl"));
}
if ($config->exists("centreond", "log_file")) {
$logger->file_mode($config->val("centreond", "log_file"));
}
# Load module
my @modules;
if ($config->exists("centreond", "module")) {
@modules = $config->val("centreond", "module");
}
$logger->writeLogInfo("Initialize daemon");
foreach my $module (@modules) {
if (find_installed($module)) {
$logger->writeLogInfo("Load module : $module");
eval "use ${module}";
my $registerFunc = "${module}::register_events";
${module}->register_events($serverType);
}
}