diff --git a/src/server/bin/kibana.js b/src/server/bin/kibana.js index c7f19f9fa43a0..6a68d74f07940 100755 --- a/src/server/bin/kibana.js +++ b/src/server/bin/kibana.js @@ -4,6 +4,7 @@ var program = require('commander'); var env = (process.env.NODE_ENV) ? process.env.NODE_ENV : 'development'; var path = require('path'); var packagePath = path.resolve(__dirname, '..', '..', '..', 'package.json'); +var fs = require('fs'); if (env !== 'development') { packagePath = path.resolve(__dirname, '..', 'package.json'); } @@ -56,4 +57,14 @@ if (program.host) { // Load and start the server. This must happen after all the config changes // have been made since the server also requires the config. var server = require('../'); -server.start(); +var logger = require('../lib/logger'); +server.start(function (err) { + if (!err && config.kibana.pid_file) { + fs.writeFile(config.kibana.pid_file, process.pid, function (err) { + if (err) { + logger.fatal('Failed to write PID file to %s', config.kibana.pid_file); + process.exit(1); + } + }); + } +}); diff --git a/src/server/config/kibana.yml b/src/server/config/kibana.yml index 10ab0bf105814..06b48b42db0e4 100644 --- a/src/server/config/kibana.yml +++ b/src/server/config/kibana.yml @@ -34,3 +34,5 @@ shard_timeout: 0 # certificate. verify_ssl: true +# Set the path to where you would like the process id file to be created. +# pid_file: /var/run/kibana.pid