018
04.08.2010, 13:45 Uhr
Lobermann
|
Hallo, ich bins wieder.
Habe nun von den Entwicklern neue Bibliotheken bekommen und nun bleibt das Programm gestartet nach dem aufruf. Einziges Problem jetzt, es werden etwa 50 Prozesse mit diesem Programm gestartet, nur kann ich keinen Fehler finden.
Hier mal der Code Ausschnitt:
C++: |
pid_t pid; std::fstream pidfile;
pidfile.open("/opt/share/omc/sm/pid.file", std::ios_base::in); pid_t oldpid; if (!pidfile) { CLog::Log(LOGERROR, "No PID File exists"); } else { pidfile >> oldpid; kill(oldpid, SIGKILL); } pid = fork();
if(pid == -1) { CLog::Log(LOGERROR, "Unable to fork() a new Prozess for Plugin"); } else if(pid == 0) { freopen("dev/zero", "r", stdin); freopen("/root/smlog.log", "a", stdout);
execlp("smplugin", "smplugin", "-i", "udp://224.1.2.51:30510", "-o", "udp://224.100.1.1:30010", "-l", "4", NULL);// }
|
Aufgrund der Logs weis ich, dass der Code nur 1x aufgerufen wird. Trotzdem entstehen jede menge Prozesse. |