diff options
Diffstat (limited to 'user/mariadb/mariadb.initd')
-rw-r--r-- | user/mariadb/mariadb.initd | 47 |
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") +} + |