linux deamon planmässig beenden

dotti

Mitglied
Hallo,

Ich habe ein Programm in C unter Linux programmiert, das als Deamon läuft.
Jetzt möchte ich das Programm Beenden, jedoch ohne das ich kill verwenden muss.
also in etwa so,

#./programm beenden

wie stelle ich das am besten an.

Meine Idea wäre z.B.
eine Nachricht in einer Datei hinterlassen, die dann vom Deamon zyklisch überprüft wird.
oder eine Nachricht per Linux Socket an den Deamon senden.

Oder vieleicht habt ihr ja noch eine bessere Idea?

Wie soll ich diese Prblem am besten lösen.


mfg


Klaus D.
 
Hi.

Warum willst du nicht kill verwenden? Kill sendet doch auch nur ein Signal an den Prozess, auf das dieser dann reagieren kann.

Gruß
 
Hallo deepthroat,

Das Problem ist, das das Programm dann an einer nicht vorhersehbaren Stelle unterbrochen wird. Und das ist nicht gut wenn man LogDateien schreibt.
In denen fehlt dann mitten drinn was.

Oder kann ich dieses Kill Signal irgend wie abfangen?
Und das Programm dann an einer passenden Stelle beenden?

mfg

Klaus D.
 
Hallo,
Oder kann ich dieses Kill Signal irgend wie abfangen?
Und das Programm dann an einer passenden Stelle beenden?

mfg

Klaus D.
deepthroat hat gesagt.:
Kill sendet doch auch nur ein Signal an den Prozess, auf das dieser dann reagieren kann.
schau mal:
C:
#include <stdio.h>
#include <signal.h>
#include <unistd.h>

static void
sig_handler (int signr)
{
  printf("Got signal SIGTERM\n");
  /* do cleanup tasks and program termination here */
}

int
main (void)
{
  if (signal (SIGTERM, sig_handler) == SIG_ERR)
    goto err;

  pause ();
  return 0;

err:
  perror("Error in signal ()");
  return 1;
}

siehe
Code:
man signal
man 7 signal
man kill

Gruß,
RedWing
 
Hallo RedWing,

Danke dir für die super Hilfe.
Funktioniert jetzt alles so wie ich des gerne hätte.

mfg


Klaus D.
 

Neue Beiträge

Zurück