From 0e0a0f6ee61021d301e19a08f1c4bd31565e64cc Mon Sep 17 00:00:00 2001 From: proller Date: Mon, 6 May 2019 15:12:18 +0300 Subject: [PATCH] CLICKHOUSE-4511 Fix forcerestart with systemd --- debian/clickhouse-server.init | 14 ++++++++------ debian/clickhouse-server.service | 3 ++- libs/libdaemon/src/BaseDaemon.cpp | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/debian/clickhouse-server.init b/debian/clickhouse-server.init index 28f8481aff7..f05be5d8453 100755 --- a/debian/clickhouse-server.init +++ b/debian/clickhouse-server.init @@ -238,7 +238,8 @@ forcestop() forcerestart() { forcestop - start + # Should not use 'start' function if systemd active + service $PROGRAM start } use_cron() @@ -291,7 +292,8 @@ main() restart && enable_cron ;; forcestop) - disable_cron && forcestop + disable_cron + forcestop ;; forcerestart) forcerestart && enable_cron @@ -300,16 +302,16 @@ main() restart ;; condstart) - is_running || start + is_running || service $PROGRAM start ;; condstop) - is_running && stop + is_running && service $PROGRAM stop ;; condrestart) - is_running && restart + is_running && service $PROGRAM restart ;; condreload) - is_running && restart + is_running && service $PROGRAM restart ;; initdb) initdb diff --git a/debian/clickhouse-server.service b/debian/clickhouse-server.service index 8050de49748..7eaceeab986 100644 --- a/debian/clickhouse-server.service +++ b/debian/clickhouse-server.service @@ -7,7 +7,8 @@ User=clickhouse Group=clickhouse Restart=always RestartSec=30 -ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml +RuntimeDirectory=clickhouse-server +ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-server.pid LimitCORE=infinity LimitNOFILE=500000 CapabilityBoundingSet=CAP_NET_ADMIN CAP_IPC_LOCK diff --git a/libs/libdaemon/src/BaseDaemon.cpp b/libs/libdaemon/src/BaseDaemon.cpp index 6bf9ef3f451..11e7af40f51 100644 --- a/libs/libdaemon/src/BaseDaemon.cpp +++ b/libs/libdaemon/src/BaseDaemon.cpp @@ -1083,7 +1083,7 @@ void BaseDaemon::initialize(Application & self) } /// Create pid file. - if (is_daemon && config().has("pid")) + if (config().has("pid")) pid.seed(config().getString("pid")); /// Change path for logging.