e9cd3e5986
Background: Bisync uses lock files as a safety feature to prevent interference from other bisync runs while it is running. Bisync normally removes these lock files at the end of a run, but if bisync is abruptly interrupted, these files will be left behind. By default, they will lock out all future runs, until the user has a chance to manually check things out and remove the lock. Before this change, lock files blocked future runs indefinitely, so a single interrupted run would lock out all future runs forever (absent user intervention), and there was no way to change this behavior. After this change, a new --max-lock flag can be used to make lock files automatically expire after a certain period of time, so that future runs are not locked out forever, and auto-recovery is possible. --max-lock can be any duration 2m or greater (or 0 to disable). If set, lock files older than this will be considered "expired", and future runs will be allowed to disregard them and proceed. (Note that the --max-lock duration must be set by the process that left the lock file -- not the later one interpreting it.) If set, bisync will also "renew" these lock files every --max-lock_minus_one_minute throughout a run, for extra safety. (For example, with --max-lock 5m, bisync would renew the lock file (for another 5 minutes) every 4 minutes until the run has completed.) In other words, it should not be possible for a lock file to pass its expiration time while the process that created it is still running -- and you can therefore be reasonably sure that any _expired_ lock file you may find was left there by an interrupted run, not one that is still running and just taking awhile. If --max-lock is 0 or not set, the default is that lock files will never expire, and will block future runs (of these same two bisync paths) indefinitely. For maximum resilience from disruptions, consider setting a relatively short duration like --max-lock 2m along with --resilient and --recover, and a relatively frequent cron schedule. The result will be a very robust "set-it-and-forget-it" bisync run that can automatically bounce back from almost any interruption it might encounter, without requiring the user to get involved and run a --resync. |
||
---|---|---|
.. | ||
commands | ||
oracleobjectstorage | ||
_index.md | ||
alias.md | ||
amazonclouddrive.md | ||
authors.md | ||
azureblob.md | ||
azurefiles.md | ||
b2.md | ||
bisync.md | ||
box.md | ||
bugs.md | ||
cache.md | ||
changelog.md | ||
chunker.md | ||
combine.md | ||
compress.md | ||
contact.md | ||
crypt.md | ||
docker.md | ||
docs.md | ||
downloads.md | ||
drive.md | ||
dropbox.md | ||
faq.md | ||
fichier.md | ||
filefabric.md | ||
filtering.md | ||
flags.md | ||
ftp.md | ||
googlecloudstorage.md | ||
googlephotos.md | ||
gui.md | ||
hasher.md | ||
hdfs.md | ||
hidrive.md | ||
http.md | ||
imagekit.md | ||
install.md | ||
install.sh | ||
internetarchive.md | ||
jottacloud.md | ||
KEYS | ||
koofr.md | ||
licence.md | ||
linkbox.md | ||
local.md | ||
mailru.md | ||
mega.md | ||
memory.md | ||
netstorage.md | ||
onedrive.md | ||
opendrive.md | ||
oracleobjectstorage.md | ||
overview.md | ||
pcloud.md | ||
pikpak.md | ||
premiumizeme.md | ||
privacy.md | ||
protondrive.md | ||
putio.md | ||
qingstor.md | ||
quatrix.md | ||
rc.md | ||
release_signing.md | ||
remote_setup.md | ||
s3.md | ||
seafile.md | ||
sftp.md | ||
sharefile.md | ||
sia.md | ||
smb.md | ||
sponsor.md | ||
storj.md | ||
sugarsync.md | ||
swift.md | ||
tardigrade.md | ||
union.md | ||
uptobox.md | ||
webdav.md | ||
yandex.md | ||
zoho.md |