mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 21:24:20 +01:00
* 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>
29 lines
757 B
Plaintext
Executable File
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}"
|