{ NULL, 0 }
};
-static char trace[] = "/sbin/utrace";
-
static void closefd(int fd)
{
if (fd > STDERR_FILENO)
if (!in->pidfile)
return 0;
if (unlink(in->pidfile)) {
- ERROR("Failed to removed pidfile: %s: %d - %s\n",
- in->pidfile, errno, strerror(errno));
+ ERROR("Failed to removed pidfile: %s: %d - %m\n",
+ in->pidfile, errno);
return 1;
}
return 0;
}
_pidfile = fopen(in->pidfile, "w");
if (_pidfile == NULL) {
- ERROR("failed to open pidfile for writing: %s: %d (%s)",
- in->pidfile, errno, strerror(errno));
+ ERROR("failed to open pidfile for writing: %s: %d (%m)",
+ in->pidfile, errno);
return 1;
}
if (fprintf(_pidfile, "%d\n", in->proc.pid) < 0) {
- ERROR("failed to write pidfile: %s: %d (%s)",
- in->pidfile, errno, strerror(errno));
+ ERROR("failed to write pidfile: %s: %d (%m)",
+ in->pidfile, errno);
fclose(_pidfile);
return 2;
}
if (fclose(_pidfile)) {
- ERROR("failed to close pidfile: %s: %d (%s)",
- in->pidfile, errno, strerror(errno));
+ ERROR("failed to close pidfile: %s: %d (%m)",
+ in->pidfile, errno);
return 3;
}
argv = alloca(sizeof(char *) * (argc + in->jail.argc));
argc = 0;
+#ifdef SECCOMP_SUPPORT
if (in->trace)
- argv[argc++] = trace;
+ argv[argc++] = "/sbin/utrace";
else if (seccomp)
argv[argc++] = "/sbin/seccomp-trace";
+#else
+ if (in->trace || seccomp)
+ ULOG_WARN("Seccomp support for %s::%s not available\n", in->srv->name, in->name);
+#endif
if (in->has_jail)
argc = jail_run(in, argv);
}
if (in->gid && setgid(in->gid)) {
- ERROR("failed to set group id %d: %d (%s)\n", in->gid, errno, strerror(errno));
+ ERROR("failed to set group id %d: %d (%m)\n", in->gid, errno);
exit(127);
}
if (in->uid && setuid(in->uid)) {
- ERROR("failed to set user id %d: %d (%s)\n", in->uid, errno, strerror(errno));
+ ERROR("failed to set user id %d: %d (%m)\n", in->uid, errno);
exit(127);
}
instance_free_stdio(in);
if (in->_stdout.fd.fd > -2) {
if (pipe(opipe)) {
- ULOG_WARN("pipe() failed: %d (%s)\n", errno, strerror(errno));
+ ULOG_WARN("pipe() failed: %d (%m)\n", errno);
opipe[0] = opipe[1] = -1;
}
}
if (in->_stderr.fd.fd > -2) {
if (pipe(epipe)) {
- ULOG_WARN("pipe() failed: %d (%s)\n", errno, strerror(errno));
+ ULOG_WARN("pipe() failed: %d (%m)\n", errno);
epipe[0] = epipe[1] = -1;
}
}