Improve with support for libraries status that prevent restarts

This commit is contained in:
flow.gunso
2019-04-24 11:07:41 +02:00
parent 1a44140556
commit 33a93d7bc2

View File

@@ -16,11 +16,32 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
set -x
# `seaf-cli status` output csv-like information with tabulates as separators and columns named in comment lines.
# The Seafile client should not be restarted while some statuses are occuring, such as "downloading" or "committing".
#
# This script grabs the output while ignoring the comments to iterate over the informations set to their columns,
# then it compares the statuses, when not empty, to the ones that do not require a restart. Finally either restart or don't.
sleep 10
seaf=/usr/bin/seaf-cli
dont_restart_on=("downloading" "committing" "waiting for sync")
restart=true
sleep 10s
while true; do
/usr/bin/seaf-cli stop
/usr/bin/seaf-cli start
sleep 1200
while IFS=$'\t' read -r name status progress; do
if [ $status ]; then
for dont_restart_on_status in "${dont_restart_on[@]}"; do
if [ "$status" == "$dont_restart_on_status" ]; then
restart=false; break; break
fi
done
fi
done < <($seaf status | grep -v "^#")
if $restart; then
$seaf stop
$seaf start
fi
sleep 10m
done