summaryrefslogtreecommitdiff
path: root/user/mariadb/mariadb.initd
diff options
context:
space:
mode:
Diffstat (limited to 'user/mariadb/mariadb.initd')
-rw-r--r--user/mariadb/mariadb.initd47
1 files changed, 47 insertions, 0 deletions
diff --git a/user/mariadb/mariadb.initd b/user/mariadb/mariadb.initd
new file mode 100644
index 000000000..4e1cf8d3e
--- /dev/null
+++ b/user/mariadb/mariadb.initd
@@ -0,0 +1,47 @@
+#!/sbin/openrc-run
+
+getconf() {
+ v=$(my_print_defaults --mysqld | grep ^--$1)
+ [ -z $v ] && echo $2 || echo ${v#*=}
+}
+
+retry="60"
+extra_stopped_commands="setup"
+
+user=${MYSQLD_USER:-mysql}
+group=${MYSQLD_GROUP:-mysql}
+default_datadir=$(getconf datadir "/var/lib/mariadb")
+datadir=${MYSQLD_DATADIR:-$default_datadir}
+
+command="/usr/bin/mysqld_safe"
+command_args="--syslog --nowatch --user=$user"
+
+depend() {
+ use net
+ need localmount
+}
+
+setup() {
+ checkpath -d -m 1775 -o $user:$group /run/mariadb
+ ebegin "Creating a new MySQL database in $datadir"
+ mysql_install_db --user=$user --datadir=$datadir
+ eend $?
+}
+
+start_pre() {
+ pidfile=$(getconf pid-file "/run/mariadb/mysqld.pid")
+ command_args="$command_args --pid-file=$pidfile"
+ if [ ! -d $datadir/mysql ]; then
+ eerror "Data directory '$datadir' is empty or invalid."
+ eerror "Run '/etc/init.d/mariadb setup' to create new database."
+ fi
+}
+
+start_post() {
+ ewaitfile 10 $(getconf socket "/run/mariadb/mysqld.sock")
+}
+
+stop_pre() {
+ pidfile=$(getconf pid-file "/run/mariadb/mysqld.pid")
+}
+