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