[Python] Python Daemon

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Odgovori
Avatar
Bug
Postovi: 240
Pridružen/a: 18 lip 2009, 23:33
Spol: M
OS: Fedora 19, Debian 7

[Python] Python Daemon

Post Postao/la Bug »

Opet ja samo drugi jezik drugi problem :)
Posto mi ona C aplikacija( http://www.linuxzasve.com/forum/viewtop ... =42&t=9803) pokrece Python aplikaciju na serveru, dolazim u problem da se load dize poprilicno (45-50) i to verovatno zato sto C program otvara/zatvara Py program.
I mislim da mi je jedino resenje da ubacim deamon, koji ce u pozadini raditi i sluziti C aplikaciji.
Py aplikacija proveri jel se IP nalazi u memcached "bazi" vrati 1 ili 0 i zatvori se program.
Ono sto sam an internetu procitao je da za daemon treba da applikacija ima neki while/loop, jel to tacno? Jel radio neko nesto slicno?
Bilo kakav savet bi mi dobro dosao :)
Avatar
ante003
Postovi: 664
Pridružen/a: 11 tra 2010, 16:35
Spol: M
OS: Arch

Re: Python Deamon

Post Postao/la ante003 »

za tak neke stvari mozes napraviti i ovo:

while true;
do skripta;
sleep 1 m;
done

beskocnacna petlja koja ti izvrsi skriptu, priceka 1 min i onda je opet izvrsi i tako u nedogled. nedostatak ovoga je to sto ne mozes kasnije ubiti tu while petlju osim ako ne ostavis taj terminal upaljen pa da mozes lupit Ctrl + C. A ako zelis ubit while petlju, moras restartat masinu :) (ako postoji nacin da se to ubije nek slobodno netko veli :))

Drugo rjesenje ti je staviti tu naredbu u cron i tada ti je cron izvrsava kako si vec podesis.
Ovo sa cronom je IMO bolje rjesenje od while petlje jer mozes kontrolirat izvrsavanje.
Avatar
ante003
Postovi: 664
Pridružen/a: 11 tra 2010, 16:35
Spol: M
OS: Arch

Re: Python Deamon

Post Postao/la ante003 »

btw, sad gledam onaj program u C-u sa drugog topica. Zasto to sve ne napises u Pythonu? Onda samo jednom pozoves tu python skriptu i to je to. Cini se lakse od kombiniranja C-a i Pythona.
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: Python Deamon

Post Postao/la stefan »

ante003 je napisao/la:btw, sad gledam onaj program u C-u sa drugog topica. Zasto to sve ne napises u Pythonu? Onda samo jednom pozoves tu python skriptu i to je to. Cini se lakse od kombiniranja C-a i Pythona.
:thumbs

A što se tiče pozivanja pythona, možeš ga embedati u C++:

Kod: Označi sve

#include <Python.h>
int main(int argc, char *argv[])
{
  Py_SetProgramName(argv[0]);  /* optional but recommended */
  Py_Initialize();
  PyRun_SimpleString("from time import time,ctime\n"
                     "print 'Today is',ctime(time())\n");
  Py_Finalize();
  return 0;
}
Ili ovako pozvati izvršenje py fajla:

Kod: Označi sve

Py_Initialize();

FILE* PythonScriptFile = fopen("Python Scripts/Test.py", "r");
if(PythonScriptFile)
{
    PyRun_SimpleFile(PythonScriptFile, "Python Scripts/Test.py");
    fclose(PythonScriptFile);
}

Py_Finalize();
Sa Py_Initialize() samo jednom digneš python i onda ga prema potrebi pozivaš da nešto odradi.
Detalje pogledaj na http://docs.python.org/2/extending/embedding.html
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
Avatar
Medojedni jazavac
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Spol: M
OS: eOS Luna
Lokacija: ForHill Croatia
Kontakt:

Re: Python Deamon

Post Postao/la Medojedni jazavac »

ali stefane, to je C sintaksa :zamisljen :zvizdi
stefan je napisao/la:tu mač gemišta
To understand recursion, you must first understand recursion.
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: Python Deamon

Post Postao/la stefan »

Medojedni jazavac je napisao/la:ali stefane, to je C sintaksa :zamisljen :zvizdi
Što je "to"?

C++ uključuje C, pa ovo napisano vrijedi i za C i za C++
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
Odgovori