From e96a9a9af82c00dcce606a84a7bb87a00411385d Mon Sep 17 00:00:00 2001 From: Kenneth Johansson Date: Wed, 24 May 2017 13:45:37 +0200 Subject: sysupgrade: run only one instance at a time. Things do not work well if running multiple instances of upgrade at the same time. Signed-off-by: Kenneth Johansson --- package/base-files/files/sbin/sysupgrade | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'package/base-files') diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index c095ca81c5..1eede14b05 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -47,6 +47,20 @@ while [ -n "$1" ]; do shift; done +# just one instance +if ! lock -n /tmp/sysupgrade.lock +then + echo "Another instance of sysupgrade already running" + echo "If you are sure this is wrong remove file /tmp/sysupgrade.lock" + exit 1 +fi + +# make sure the lock is removed when done even when killed +finish() { + lock -u /var/sysupgrade.lock +} +trap finish EXIT INT TERM + export CONFFILES=/tmp/sysupgrade.conffiles export CONF_TAR=/tmp/sysupgrade.tgz -- cgit v1.2.3