};
/* command line options */
-char *opt_output_path;
+char *opt_output_path, *opt_working_directory;
static int opt_daemon, opt_background;
/*
{ "verbose", 0, 0, 'v', },
{ "config", 1, 0, 'f' },
{ "version", 0, 0, 'V' },
+ { "working-directory", 1, 0, 'w', },
{ NULL, 0, 0, 0, },
};
}
}
break;
+ case 'w':
+ if (lttng_is_setuid_setgid()) {
+ WARN("Getting '%s' argument from setuid/setgid binary refused for security reasons.",
+ "-w, --working-directory");
+ } else {
+ ret = asprintf(&opt_working_directory, "%s", arg);
+ if (ret < 0) {
+ ret = -errno;
+ PERROR("asprintf working_directory");
+ goto end;
+ }
+ }
+ break;
+
case 'v':
/* Verbose level can increase using multiple -v */
if (arg) {
}
}
+
+ if (opt_working_directory) {
+ ret = utils_change_working_dir(opt_working_directory);
+ if (ret) {
+ ERR("Changing working directory");
+ goto exit_options;
+ }
+ }
+
/* Initialize thread health monitoring */
health_relayd = health_app_create(NR_HEALTH_RELAYD_TYPES);
if (!health_relayd) {