daemon(3)

الاسم
daemon - التشغيل في الخلفية

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <unistd.h>

int daemon(int nochdir, int noclose);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

daemon():
    منذ glibc 2.21:
        _DEFAULT_SOURCE
    في glibc 2.19 و 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    حتى glibc 2.19 وما قبله:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

الوصف
دالة daemon() مخصصة للبرامج الراغبة في فصل نفسها عن الطرفية المسيطرة والتشغيل في الخلفية كخدمات نظام.

إذا كان nochdir صفرًا، تُغير daemon() دليل العمل الحالي للعملية إلى الدليل الجذر ("/")؛ وإلا، يُترك دليل العمل الحالي دون تغيير.

إذا كان noclose صفرًا، تُعيد daemon() توجيه الإدخال القياسي والإخراج القياسي والخطأ القياسي إلى /dev/null؛ وإلا، لا تُجرى أي تغييرات على واصفات الملفات هذه.

قيمة الإرجاع
(تتفرع هذه الدالة، وإذا نجح fork(2)، تستدعي العملية الأم _exit(2)، بحيث تُرى الأخطاء اللاحقة بواسطة العملية الابن فقط.) عند النجاح، تُرجع daemon() صفرًا. إذا حدث خطأ، تُرجع daemon() -1 وتضبط errno على أي من الأخطاء المحددة لـ fork(2) و setsid(2).

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
daemon() | سلامة الخيوط | MT-Safe

الإصدارات
تظهر دالة مشابهة على أنظمة BSD.

يمكن لتنفيذ glibc أيضًا إرجاع -1 عندما يكون /dev/null موجودًا ولكنه ليس جهازًا حرفيًا بالأرقام الرئيسية والثانوية المتوقعة. في هذه الحالة، لا يلزم ضبط errno.

المعايير
لا شيء.

التاريخ
4.4BSD.

العلل
أُخذ تنفيذ مكتبة GNU C لهذه الدالة من BSD، ولا يستخدم تقنية التفرع المزدوج (أي fork(2)، setsid(2)، fork(2)) الضرورية لضمان ألا تكون عملية الخدمة الناتجة قائد جلسة. بدلاً من ذلك، تكون الخدمة الناتجة هي قائد جلسة. على الأنظمة التي تتبع دلالات System V (مثل Linux)، يعني هذا أنه إذا فتحت الخدمة طرفية ليست بالفعل طرفية مسيطرة لجلسة أخرى، فستصبح تلك الطرفية عن غير قصد الطرفية المسيطرة للخدمة.

انظر أيضًا
fork(2), setsid(2), daemon(7), logrotate(8)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.