Programm als Daemon...exit-Problem
-
Hi,
vorab: ich bin ein vollkommener Neuling - bitte um Nachsicht
Ich habe ein kleines C Programm geschrieben um die serielle Schnittstelle anzusprechen (ein Bit auf HIGH setzen)
Hauptproblem ist, dass sobald das Programm durchgelaufen ist, das Bit wieder auf LOW ist.Meine Idee wäre das Programm als Daemon laufen zu lassen (wie das geht wurde hier schon besprochen afaik)
Hierzu hätt ich 2 Fragen:
Wie verhindere ich, dass das Programm nach Ablauf der Befehle beendet wird?
Wie kann ich das daemonisierte Programm dann mit -start / -stop Argumenten bedienen?#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>int main() {
int port = open("/dev/ttyS0", O_RDWR);
int status = TIOCM_DTR;
ioctl(port, TIOCMSET, &status);close(port);
return 0;
}(Falls jemand eine andere Möglichkeit kennt das Bit auf HIGH zu lassen - jeder Vorschlag ist herzlich willkommen)
Danke!
-
Meine Idee wäre das Programm als Daemon laufen zu lassen (wie das geht wurde hier schon besprochen afaik)
jop http://www.c-plusplus.net/forum/viewtopic.php?t=39501
Wie verhindere ich, dass das Programm nach Ablauf der Befehle beendet wird?
for(;;) pause();
Wie kann ich das daemonisierte Programm dann mit -start / -stop Argumenten bedienen?
Das wird in der Regel über signale erledigt. Wenn dein Programm mit -start aufgerufen wird, legt es eine Datei (in /tmp) an, wo es die pid speichert. Wenn das Programm mit -stop aufgerufen wird, kannst du gucken ob die Datei in /tmp existiert, die PID auslesen und an den Prozess (der Daemon) mit man: kill(2) ein Signal senden (in dem Fall eben SIGTERM)
-
Danke dir vielmals...auf pause() hätt ich Ei auch selbst draufkommen können
Das mit start/stop probiere ich dann gleich - danke nochmal