diff --git a/cmake/init_scripts.cmake b/cmake/init_scripts.cmake index 83f8dd138..1ab095eba 100644 --- a/cmake/init_scripts.cmake +++ b/cmake/init_scripts.cmake @@ -25,6 +25,15 @@ else() endif() configure_file(${CMAKE_SOURCE_DIR}/etc/maxscale.conf.in ${CMAKE_BINARY_DIR}/maxscale.conf @ONLY) + +# The systemd service file +if (CMAKE_BUILD_TYPE MATCHES "(D|d)(E|e)(B|b)(U|u)(G|g)") + # Options enabled only in debug builds (a literal multi-line string) + set(SERVICE_FILE_DEBUG_OPTIONS + "LimitCORE=infinity +ExecStartPost=/bin/sh -c 'prlimit -p $(pidof maxscale) --core=unlimited'") +endif() + configure_file(${CMAKE_SOURCE_DIR}/etc/maxscale.service.in ${CMAKE_BINARY_DIR}/maxscale.service @ONLY) if(PACKAGE) diff --git a/etc/maxscale.service.in b/etc/maxscale.service.in index 068bb342e..7c087e6f2 100644 --- a/etc/maxscale.service.in +++ b/etc/maxscale.service.in @@ -5,12 +5,11 @@ After=network.target [Service] Type=forking Restart=on-abort -LimitCORE=infinity +@SERVICE_FILE_DEBUG_OPTIONS@ # Make sure /var/run/maxscale exists PermissionsStartOnly=true ExecStartPre=/usr/bin/install -d @MAXSCALE_VARDIR@/run/maxscale -o maxscale -g maxscale -ExecStartPost=/bin/sh -c 'prlimit -p $(pidof maxscale) --core=unlimited' PIDFile=@MAXSCALE_VARDIR@/run/maxscale/maxscale.pid