diff options
-rwxr-xr-x | package/base-files/files/sbin/sysupgrade | 14 |
1 files changed, 14 insertions, 0 deletions
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 |