next up previous contents
Next: POSIX-threadek Up: Rendszerhívások Previous: Egy összetettebb példa:

Daemon folyamatok

A UNIX operációs rendszerben vannak olyan feladatok, amiket a háttérben (gyakran "észrevétlenül") futó folyamatok végeznek el. Ilyen például a rendszeres feladatok futtatását végzo cron program. Ezeket a programokat daemon folyamatoknak is nevezik. Mivel ezeket a folyamatokat nem a terminálról indítják, általában a rendszerindításkor automatikusan indulnak el, ezért nem illik a képernyore írniuk (esetleg nagyon nagy rendszerhibák esetén ezt azért megtehetik), és nem illik olyan eroforásokat fenntartaniuk, amikre nincs szükségük. Ahhoz, hogy egy daemon folyamat a feladatának ellátásához szükséges eroforrásokon kívül minél kevesebb más eroforrást foglaljon le, kialakítottak olyan konvenciókat, amiket a daemon folyamatokat írva követni érdemes. Ebben a pontban ezekrol a konvenciókról lesz szó, majd bemutatunk egy C kódrészletet, amely e konvenciók alapján lett megírva, és felhasználhatjuk saját daemon folyamataink készítésekor.

A fenti lépéseket a következo eljárás megteszi:

int daemon_init(void)
{
  int pid;

  close(0);
  close(1);
  close(2);
  pid=fork();
  if (pid < 0) return (-1);
  if (pid != 0) exit(0); /* a szulo folyamat befejezi a futasat */
  setsid();
  chdir("/");
  umask(0);
  return(0);
}



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996