[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2001
    Beiträge
    9

    Signale aus C-Programmen an laufende Prozesse senden

    Unter Unix können zwischen verschiedenen Prozessen mit der kill-Funktion Signale gesendet werden.
    Das soll unter OS/400 auch gehen, soweit ich das der Doku entnehmen konnte. Ich habe es in C-Programmen probiert.
    Prinzipiell klappt das auch, die Signale kommen an, aber leider ist die Reaktion immer die gleiche, der Job wird beendet, z.B.:

    Für den Job wurde ein SIGUSR1-Signal empfangen. Die entsprechende Aktion war das Beenden des Jobs.

    Dabei kommen durchaus unterschiedliche Signale (hier SIGUSR1) an. Was mache ich falsch? Ich würde auf diese SIGUSR*-Signale gern individuell reagieren können und nur bei entsprechenden Signalen wie z.B. SIGTERM den Job beenden.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Für die Signalbehandlung gibt es spezielle C-Funktionen, mit denen man ein Signal abfangen kann. Hierbei wird für das entsprechende Signal eine Prozedur-Adresse übergeben bzw. das Signal auf IGNORE gesetzt.

    Dies funktioniert nur in C-Umgebungen und kann in RPGLE nicht verwendet werden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    May 2001
    Beiträge
    9
    Danke für die Antwort.
    Ich will auch nur C-Programme verwenden.
    Gibt es dafür eine Beschreibung und vielleicht ein Beispiel?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Schau mal im C++-Handbuch nach:

    http://publib.boulder.ibm.com/iserie...s/c4156071.pdf

    und suche nach der Funktion "signal()"
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    May 2001
    Beiträge
    9
    Hallo,
    die Doku war mir bekannt und danach haben wir das Ganze auch versucht zu realisieren.
    Da es dabei bisher keinen Erfolg gab, habe ich dann gestern einige Testausgaben an den verschiedensten Stellen eingefügt und plötzlich funktionierte es. Nach einigen weiteren Versuchen, blieben dann diese beiden Zeilen vor dem Initialisieren der Signale übrig, deren Entfernen wieder dazu führte, daß es nicht mehr funktioniert:

    fprintf(stderr,"Sinale initialisieren\n");
    fflush(stderr);
    InitializeSignals();

    Vielleicht habe ich auch noch irgendwann Zeit, herauszubekommen, was die wirkliche Ursache ist.

    Danke und Gruß!
    Karin Schmidt

Similar Threads

  1. 16MB Grenze in C Programmen umgehen
    By schatte in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-10-06, 15:22
  2. XML zu einem Port Senden
    By Weki in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 11-09-06, 13:31
  3. Senden via PDFWTR an QNTC
    By fischers in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 12-06-06, 08:57
  4. HTTP Request senden
    By NEich in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 06-03-06, 14:49
  5. emails von as400 direkt senden?
    By Koelch400 in forum IBM i Hauptforum
    Antworten: 17
    Letzter Beitrag: 16-01-05, 10:19

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •