Files
addons/mariadb/rootfs/etc/services.d/mariadb-lock/run
Stefan Agner 1a10f9613f Add lock capabilities during snapshot (#2063)
* Add service which locks database tables

Add an additional service which helds a lock on all database tables.
This allows to safely snapshot the database files.

* Lock database during snapshot operation

Fixes: #1353

* Update config.json

* Update CHANGELOG.md

Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
2021-06-17 14:22:17 +02:00

29 lines
757 B
Plaintext
Executable File

#!/usr/bin/with-contenv bashio
# ==============================================================================
# Start MariaDB client to lock tables (for snapshots)
# ==============================================================================
bashio::log.info "Lock tables using mariadb client..."
exec 4> >(mariadb)
MARIADB_PID=$!
echo "FLUSH TABLES WITH READ LOCK;" >&4
# Notify s6 about successful service start
echo "" >&3
bashio::log.info "MariaDB tables locked."
# Register stop
function stop_mariadb_client() {
echo "UNLOCK TABLES;" >&4
bashio::log.info "MariaDB tables unlocked."
exec 4>&-
# Successful exit, avoid wait exit status to propagate
exit 0
}
trap "stop_mariadb_client" SIGTERM SIGHUP
wait "${MARIADB_PID}"