osync icon indicating copy to clipboard operation
osync copied to clipboard

silently fail if already running cron job?

Open jmcisvt opened this issue 3 years ago • 3 comments

I would like to run osync every 5 minutes to sync local and remote changes. But I also need it to run for very long times to handle occasional huge files. My understanding is that daemon/server mode only picks up local changes. So that won't work.

I figured I could run it as a cron job every five minutes. But if it is already running I want to sliently fail and let the first process finish. I don't want to use the MAX RUNTIME timeout and keep interrupting it every 4 min 59 sec. Is there a way I can do this?

jmcisvt avatar Apr 22 '22 18:04 jmcisvt

There are two ways you can achieve what you want:

  1. Run osync target helper daemon on remote so local osync gets notified when remote file changes occur.
  2. Use the following config to make sure to exit osync if another osync instance is running: LOCAL_RUN_BEFORE_CMD="ps aux | grep \"[o]sync\" || exit 0"

If those don't fit, I could still add a EXIT_IF_OSYNC_ALREADY_RUNNING parameter

deajan avatar Apr 22 '22 22:04 deajan

I just disovered the MAX_WAIT parameter. I can run in daemon mode and use MAX_WAIT set to 300 right? I think that will do what I want.

What is an osync target helper daemon? I did not see this in the documentation.

jmcisvt avatar Apr 23 '22 00:04 jmcisvt

Documentation isn't updated at the moment for v1.3RC2 which is the git master version. osync target helper daemon is a service installed on targets in order to detect FS changes and notify initiator which will trigger a sync run.

deajan avatar May 05 '22 08:05 deajan