-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/agent.c,v 6.13 2003-05-14 13:54:42 muench Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/agent.c,v 6.14 2003-08-27 13:09:03 hadaq Exp $";
#define _GNU_SOURCE
#include <unistd.h>
#include <rpc/rpc.h>
+#include <syslog.h>
#include "agent.h"
#include "worker.h"
char **argv;
/* The closing NULL in argv cannot be passed via rpc, we have to add it
- here */
+ here */
argv = malloc((args->argv.argv_len + 1) * sizeof(char *));
}
argv[i] = NULL;
+ openlog("daq_agent", LOG_PID | LOG_PERROR, LOG_LOCAL0);
+ setlogmask(LOG_UPTO(LOG_INFO));
+
Worker_start(args->name, argv);
+
+ closelog();
+
retVal = addWorker(argv[0]);
free(argv);
{
static char *retVal;
+ openlog("daq_agent", LOG_PID | LOG_PERROR, LOG_LOCAL0);
+ setlogmask(LOG_UPTO(LOG_INFO));
+
retVal = Worker_status(getWorker(*id));
+
+ closelog();
+
return &retVal;
}
{
static int retVal;
+ openlog("daq_agent", LOG_PID | LOG_PERROR, LOG_LOCAL0);
+ setlogmask(LOG_UPTO(LOG_INFO));
+
Worker_stop(getWorker(*id), 15);
+
+ closelog();
+
removeWorker(*id);
retVal = 0;
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/worker.c,v 6.23 2003-08-27 12:40:39 muench Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/worker.c,v 6.24 2003-08-27 13:09:03 hadaq Exp $";
+
+#define WORKER_NEW_PROTOCOL
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
} else {
if (my->pid == 0) { /* This is the child, we can not get out of */
/* this block */
- syslog(LOG_INFO, "Starting worker %d (%s)", my->pid, path);
+ syslog(LOG_INFO, "Starting worker %d (%s)", getpid(), path);
if (0 > execvp(path, argv)) {
syslog(LOG_DEBUG, "%s:%d: %s", __FILE__, __LINE__, strerror(errno));
syslog(LOG_EMERG, "Starting %s: %s", path, strerror(errno));
if (0 == kill(my->pid, SIGTERM)) {
while (0 == kill(my->pid, 0)) {
struct timespec t = { 1, 0 };
+
+ waitpid(my->pid, NULL, WNOHANG);
nanosleep(&t, NULL);
}
}