aboutsummaryrefslogtreecommitdiff
path: root/rcynic
diff options
context:
space:
mode:
Diffstat (limited to 'rcynic')
-rw-r--r--rcynic/rcynic.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c
index 4d5ce037..46d3cb82 100644
--- a/rcynic/rcynic.c
+++ b/rcynic/rcynic.c
@@ -4723,7 +4723,7 @@ int main(int argc, char *argv[])
{
int opt_jitter = 0, use_syslog = 0, use_stderr = 0, syslog_facility = 0;
int opt_syslog = 0, opt_stderr = 0, opt_level = 0, prune = 1;
- int opt_auth = 0, opt_unauth = 0;
+ int opt_auth = 0, opt_unauth = 0, keep_lockfile = 0;
char *cfg_file = "rcynic.conf";
char *lockfile = NULL, *xmlfile = NULL;
int c, i, j, ret = 1, jitter = 600, lockfd = -1;
@@ -4878,6 +4878,10 @@ int main(int argc, char *argv[])
else if (!name_cmp(val->name, "lockfile"))
lockfile = strdup(val->value);
+ else if (!name_cmp(val->name, "keep-lockfile") &&
+ !configure_boolean(&rc, &keep_lockfile, val->value))
+ goto done;
+
else if (!opt_jitter &&
!name_cmp(val->name, "jitter") &&
!configure_integer(&rc, &jitter, val->value))
@@ -5219,7 +5223,7 @@ int main(int argc, char *argv[])
ERR_free_strings();
if (rc.rsync_program)
free(rc.rsync_program);
- if (lockfile && lockfd >= 0)
+ if (lockfile && lockfd >= 0 && !keep_lockfile)
unlink(lockfile);
if (lockfile)
free(lockfile);