linux ajastin

prorammer

olen tehnyt c :lla linuxissa serveriprosessin, joka on jatkuvasti käynnissä ja kuuntelee sokettia. Haluaisin, että prosessini ottaa mysql tietokantaan yhteyden esim. joka
torstai kello 14.00 ja tallentaa sinne tietoa. Noita ajastettuja tapahtumia pitäisi tehdä enemmänkin.

Kuinka tuo tiettynä ajanhetkenä tapahtuva toiminta olisi helpointa toteuttaa? Löytyykö jotain alarm() tapaista funktiota, johon voihin asettaa päivämäärän/kellonajan noiden sekunttien tapaan jotain alarm() ottaa vastaan?

6

584

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • *BSD

      Setitimer() on varmaan funktio, jota etsit. Tolla tosin ei voi päivämäärää laittaa suoraan mutta voit tehdä SIGALRM-käsittelijän, joka tarkastaa ajan yms.

      Toinen tapa, joka tuli mieleen on käyttää cronia lähettämään signaali (vaikka SIGUSR1 tolle prosessille kun aika menee umpeen).

      • prorammer

        >Toinen tapa, joka tuli mieleen on käyttää cronia >lähettämään signaali (vaikka SIGUSR1 tolle >prosessille kun aika menee umpeen).
        mitens tuon lähetys onnistuu komentoriviltä/skriptistä?


      • prorammer kirjoitti:

        >Toinen tapa, joka tuli mieleen on käyttää cronia >lähettämään signaali (vaikka SIGUSR1 tolle >prosessille kun aika menee umpeen).
        mitens tuon lähetys onnistuu komentoriviltä/skriptistä?

        Tietysti ohjelmalla kill. Esim. "kill -USR1 prosessin_pid". C/C :lla kikkaillessa voit käyttää systeemikutsua kill (katso "man 2 kill").


      • prorammer
        Mik26 kirjoitti:

        Tietysti ohjelmalla kill. Esim. "kill -USR1 prosessin_pid". C/C :lla kikkaillessa voit käyttää systeemikutsua kill (katso "man 2 kill").

        vielä jatkokysymys. prosessithan käynnistyy aina vaihtelevalla pidillä. miten saan tuon skriptin löytämään prosessin nimeltään xxx pidin?


      • *BSD
        prorammer kirjoitti:

        vielä jatkokysymys. prosessithan käynnistyy aina vaihtelevalla pidillä. miten saan tuon skriptin löytämään prosessin nimeltään xxx pidin?

        Se prosessi voi kirjoittaa sen PIDn vaikka levylle (esim. /var/run/xyz.pid) käynnistettäessä. Toinen tapa varmaan on käyttää pgreppiä (tai ps -ef | grep ..).


      • prorammer
        *BSD kirjoitti:

        Se prosessi voi kirjoittaa sen PIDn vaikka levylle (esim. /var/run/xyz.pid) käynnistettäessä. Toinen tapa varmaan on käyttää pgreppiä (tai ps -ef | grep ..).

        kiitoksia kaikille vastanneille.. nyt selviän eteenpäin.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mitä sanoisit

      juuri nyt kaivatullesi jos uskaltaisit/kehtaisit?
      Ikävä
      129
      1333
    2. Mitä hyvää

      Mitä hyvää hän on tuonut elämääsi?
      Ikävä
      100
      861
    3. Mikä teidän jutussa on ongelmana?

      Missä meni pieleen?
      Ikävä
      75
      683
    4. 50
      577
    5. Koillis motor

      Kyllä on mennyt palvelu alas ku lehmänhäntä, sovitut asiat ja luvatut soitot pitää hoitaa eikä tehä oharia, täysin tumpa
      Suomussalmi
      12
      493
    6. ABC: n kahvilan uusi nimi matkimalla

      Kahvia ja virvokkeita myytiin aikoinaan ÄKKI-VANNIN KAHVILASSA Haapavedellä ja paikalliset sanoivat sitä haussia "Tuhann
      Haapavesi
      40
      464
    7. Kylillä ei ole näkynyt? Missä luuraat nainen?

      Olisit soittanut mulle nainen. Oltais voitu nähdä vaikka laavulla. Miksi pelkäät minua? Eihän siinä ole mitään järkeä. m
      Suhteet
      153
      441
    8. Tehdäänkö tänään toiveista totta?

      Poikkea tänä illasta siinä lähellä ja annetaan silmien puhua ja sen jälkeen puhu sinä lopulta mitä ajattelet..
      Ikävä
      30
      407
    9. Missä näet kaivattuasi?

      Mitä teet silloin? Tuleeko pakene reaktio? Vai hellä tunne ja ere..
      Ikävä
      25
      381
    10. Rydman sivuutti mutupohjalta asiantuntija-arviot tutkimusrahoitusta myönnettäessä

      Onko Rydman sopiva tai kykenevä toimimaan ministerinä? Ei ole. Ministerit ovat joutuneet puhuteltaviksi vähemmästäkin;
      Maailman menoa
      174
      372
    Aihe