summaryrefslogtreecommitdiff
path: root/support-files/mariadb@.service.in
diff options
context:
space:
mode:
authorDaniel Black <grooverdan@users.sourceforge.net>2015-09-17 22:16:19 +1000
committerSergey Vojtovich <svoj@mariadb.org>2015-10-12 17:51:49 +0200
commit20c2ae39db3dd0ec4c337a9b0bd2bf4481b61e49 (patch)
treeb7764b7bcbae69da067c1d16592fdde2d82707ab /support-files/mariadb@.service.in
parent92271c78b6c78b1a0248ce5d1c96326b930de610 (diff)
downloadmariadb-git-20c2ae39db3dd0ec4c337a9b0bd2bf4481b61e49.tar.gz
MDEV-427/MDEV-5713 Add systemd script with notify functionality
Diffstat (limited to 'support-files/mariadb@.service.in')
-rw-r--r--support-files/mariadb@.service.in133
1 files changed, 133 insertions, 0 deletions
diff --git a/support-files/mariadb@.service.in b/support-files/mariadb@.service.in
new file mode 100644
index 00000000000..bfcc71a8d40
--- /dev/null
+++ b/support-files/mariadb@.service.in
@@ -0,0 +1,133 @@
+# Multi instance version of mariadb. For if you run mutiple verions at once.
+# Also used for mariadb@bootstrap to bootstrap Galera.
+#
+# create config file @INSTALL_SYSCONF2DIR@/my{instancename}.cnf
+#
+# start as systemctl start mariadb@{instancename}.server
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# Thanks to:
+# Daniel Black
+# Erkan Yanar
+# David Strauss
+# and probably others
+# Inspired from https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-db/mysql-init-scripts/files/mysqld_at.service
+
+[Unit]
+Description=MariaDB database server
+After=network.target
+After=syslog.target
+
+ConditionPathExists=@INSTALL_SYSCONF2DIR@/my%I.cnf
+
+[Install]
+WantedBy=multi-user.target
+Alias=mysql.service
+Alias=mysqld.service
+
+
+[Service]
+
+##############################################################################
+## Core requirements
+##
+
+Type=notify
+
+# Setting this to true can break replication and the Type=notify settings
+PrivateNetwork=false
+
+##############################################################################
+## Package maintainers
+##
+
+User=mysql
+
+# Execute pre and post scripts as root, otherwise it does it as User=
+# PermissionsStartOnly=true
+
+# Needed to create system tables etc.
+# ExecStartPre=/usr/bin/mysql_install_db
+
+# Start main service
+# EXTRA_ARGS here is for users to set in /etc/systemd/system/mariadb@.service.d/MY_SPECIAL.conf
+# Use the [service] section and Environment="EXTRA_ARGS=...".
+# This isn't a replacement for my.cnf.
+
+ExecStart=
+ExecStart=/usr/sbin/mysqld $EXTRA_ARGS --defaults-file=@INSTALL_SYSCONF2DIR@/my%I.cnf
+# Alternate: (remove ConditionPathExists above)
+# use [mysqld.INSTANCENAME] as sections in my.cnf
+#
+# ExecStart=/usr/sbin/mysqld $EXTRA_ARGS --defaults-group-suffix=%I
+
+KillMode=process
+KillSignal=SIGTERM
+
+# Don't want to see an automated SIGKILL ever
+SendSIGKILL=no
+
+# Exit status 1 is a fatal config error. Restarting won't help.
+RestartPreventExitStatus=1
+Restart=on-failure
+RestartSec=5s
+
+PrivateDevices=true
+
+UMask=077
+
+##############################################################################
+## USERs can override
+##
+##
+## by creating a file in /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf
+## and adding/setting the following will override this file's settings.
+
+# Useful options not previously available in [mysqld_safe]
+
+# Kernels like killing mysqld when out of memory because its big.
+# Lets temper that preference a little.
+OOMScoreAdjust=-600
+
+# Explicitly start with high IO priority
+BlockIOWeight=1000
+
+# If you don't use the /tmp directory for SELECT ... OUTFILE and
+# LOAD DATA INFILE you can enable PrivateTmp=true for a little more security.
+PrivateTmp=false
+
+##
+## Options previously available to be set via [mysqld_safe]
+## that now needs to be set by systemd config files as mysqld_safe
+## isn't executed.
+##
+
+# Number of files limit. previously [mysqld_safe] open-file-limit
+LimitNOFILE=16364
+
+# Maximium core size. previously [mysqld_safe] core-file-size
+# LimitCore=
+
+# Nice priority. previously [mysqld_safe] nice
+# Nice=-5
+
+# Timezone. previously [mysqld_safe] timezone
+# Environment="TZ=UTC"
+
+# Library substitutions. previously [mysqld_safe] malloc-lib with explict paths
+# (in LD_LIBRARY_PATH) and library name (in LD_PRELOAD).
+# Environment="LD_LIBRARY_PATH=/path1 /path2" "LD_PRELOAD=
+
+# Flush caches. previously [mysqld_safe] flush-caches=1
+# ExecStartPre=sync
+# ExecStartPre=sysctl -q -w vm.drop_caches=3
+
+# numa-interleave=1 equalivant
+# Change ExecStart=numactl --interleave=all /usr/sbin/mysqld......
+
+# crash-script equalivent
+# FailureAction=