summaryrefslogtreecommitdiffstats
path: root/libdaemon/dexec.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-12-18 23:29:50 +0000
committerLennart Poettering <lennart@poettering.net>2004-12-18 23:29:50 +0000
commit91511db7500439088b8b3bb08ce6ee6f8f8e6499 (patch)
tree06e43cebbd77993fa7ce7a9ad11ccc0b7a4ff3ab /libdaemon/dexec.h
parent46be51bbc763d02922da18b1b3d7946aba9ab4ea (diff)
rename src/ to libdaemon/
git-svn-id: file:///home/lennart/svn/public/libdaemon/trunk@71 153bfa13-eec0-0310-be40-b0cb6a0e1b4b
Diffstat (limited to 'libdaemon/dexec.h')
-rw-r--r--libdaemon/dexec.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/libdaemon/dexec.h b/libdaemon/dexec.h
new file mode 100644
index 0000000..d15d49c
--- /dev/null
+++ b/libdaemon/dexec.h
@@ -0,0 +1,55 @@
+#ifndef foodexechfoo
+#define foodexechfoo
+
+/* $Id: exec.h 4 2003-08-10 19:56:53Z lennart $ */
+
+/*
+ * This file is part of libdaemon.
+ *
+ * libdaemon is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * libdaemon is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with libdaemon; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \file
+ *
+ * Contains a robust API for running sub processes with STDOUT and
+ * STDERR redirected to syslog
+ */
+
+/** If this variable is defined to 1 iff daemon_exec() is supported.*/
+#define DAEMON_EXEC_AVAILABLE 1
+
+/** Run the specified executable with the specified arguments in the
+ * specified directory and return the return value of the program in
+ * the specified pointer. The calling process is blocked until the
+ * child finishes and all child output (either STDOUT or STDIN) has
+ * been written to syslog.
+ *
+ * @param dir Working directory for the process.
+ * @param ret A pointer to an integer to write the return value of the program to.
+ * @param prog The path to the executable
+ * @param ... The arguments to be passed to the program, followed by a (char *) NULL
+ * @return Nonzero on failure, zero on success
+ */
+int daemon_exec(const char *dir, int *ret, const char *prog, ...);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif