+/*
+ * Write pidfile using the rundir and opt_pidfile.
+ */
+static void write_pidfile(void)
+{
+ int ret;
+ char pidfile_path[PATH_MAX];
+
+ assert(rundir);
+
+ if (opt_pidfile) {
+ strncpy(pidfile_path, opt_pidfile, sizeof(pidfile_path));
+ } else {
+ /* Build pidfile path from rundir and opt_pidfile. */
+ ret = snprintf(pidfile_path, sizeof(pidfile_path), "%s/"
+ DEFAULT_LTTNG_SESSIOND_PIDFILE, rundir);
+ if (ret < 0) {
+ PERROR("snprintf pidfile path");
+ goto error;
+ }
+ }
+
+ /*
+ * Create pid file in rundir. Return value is of no importance. The
+ * execution will continue even though we are not able to write the file.
+ */
+ (void) utils_create_pid_file(getpid(), pidfile_path);
+
+error:
+ return;
+}
+