الخيارات¶
ملفات
وحدات
المقبس قد
تتضمن قسمي
[Unit] و[Install]،
الموصوفين
في systemd.unit(5).
ملفات
وحدات
المقبس يجب
أن تتضمن
قسم [Socket]، الذي
يحمل
معلومات
حول المقبس
أو FIFO الذي
تشرف عليه.
عدد من
الخيارات
التي قد
تُستخدم في
هذا القسم
مشتركة مع
أنواع
وحدات أخرى.
هذه
الخيارات
موثقة في
systemd.exec(5) وsystemd.kill(5)
وsystemd.resource-control(5).
الخيارات
الخاصة
بقسم [Socket]
لوحدات
المقبس هي
التالية:
ListenStream=, ListenDatagram=,
ListenSequentialPacket=
يحدد
عنوانًا
للاستماع
عليه لمقبس
دفق (
SOCK_STREAM) أو
مخطط
بيانات (
SOCK_DGRAM)
أو حزمة
متسلسلة
(
SOCK_SEQPACKET)، على
التوالي.
يمكن كتابة
العنوان
بتنسيقات
مختلفة:
إذا بدأ
العنوان
بشرطة
مائلة ("/")،
يُقرأ
كمقبس نظام
ملفات في
عائلة
مقابس AF_UNIX.
إذا بدأ
العنوان
برمز "@"،
يُقرأ
كمقبس
مساحة اسم
مجردة في
عائلة AF_UNIX.
يُستبدل "@"
بحرف NUL قبل
الربط.
للتفاصيل،
انظر unix(7).
إذا كانت
سلسلة
العنوان
رقمًا
واحدًا،
فتُقرأ
كرقم منفذ
للاستماع
عبر IPv6.
اعتمادًا
على قيمة
BindIPv6Only= (انظر
أدناه)، قد
يؤدي ذلك
إلى جعل
الخدمة
متاحة عبر
كل من IPv6 وIPv4
(المبدئي) أو
عبر IPv6 فقط.
إذا كانت
سلسلة
العنوان
سلسلة
بالتنسيق
"v.w.x.y:z"،
فتُفسر
كعنوان IPv4 v.w.x.y
ومنفذ z.
إذا كانت
سلسلة
العنوان
سلسلة
بالتنسيق
"[x]:y"،
فتُفسر
كعنوان IPv6 x
ومنفذ y.
يمكن تحديد
نطاق واجهة
اختياري
(اسم
الواجهة أو
رقمها) بعد
رمز "%":
"[x]:y%dev".
نطاقات
الواجهة
مفيدة فقط
مع عناوين
الرابط
المحلي،
لأن النواة
تتجاهلها
في الحالات
الأخرى.
لاحظ أنه
إذا حُدد
عنوان كـ IPv6،
فقد يظل
يجعل
الخدمة
متاحة عبر IPv4
أيضًا،
اعتمادًا
على إعداد
BindIPv6Only= (انظر
أدناه).
إذا كانت
سلسلة
العنوان
سلسلة
بالتنسيق
"vsock:x:y"،
فتُقرأ كـ CID
x على منفذ y
في عائلة AF_VSOCK.
CID هو معرف
عدد صحيح
فريد 32 بت في
AF_VSOCK مماثل
لعنوان IP.
تحديد CID
اختياري،
ويمكن
تعيينه إلى
سلسلة
فارغة. يمكن
استبدال "vsock"
بـ "vsock-stream" أو
"vsock-dgram" أو "vsock-seqpacket"
لفرض
استخدام
نوع المقبس
المقابل.
لاحظ أن
SOCK_SEQPACKET (أي ListenSequentialPacket=)
متاح فقط
لمقابس AF_UNIX.
SOCK_STREAM (أي ListenStream=)
عند
استخدامه
لمقابس IP
يشير إلى
مقابس TCP، SOCK_DGRAM
(أي ListenDatagram=) إلى UDP.
يمكن
تحديد هذه
الخيارات
أكثر من
مرة، وفي
هذه
الحالة،
سيؤدي حركة
المرور
الواردة
على أي من
المقابس
إلى تفعيل
الخدمة،
وستُمرر
جميع
المقابس
المدرجة
إلى
الخدمة،
بغض النظر
عن وجود
حركة مرور
واردة
عليها أم لا.
إذا عُين
السلسلة
الفارغة
لأي من هذه
الخيارات،
فستُعاد
تعيين
قائمة
العناوين
للاستماع،
ولن يكون
لأي
استخدام
سابق لأي من
هذه
الخيارات
أي تأثير.
من الممكن
أيضًا وجود
أكثر من
وحدة مقبس
لنفس
الخدمة عند
استخدام
Service=،
وستتلقى
الخدمة
جميع
المقابس
المكونة في
جميع وحدات
المقابس.
تُمرر
المقابس
المكونة في
وحدة واحدة
بترتيب
التكوين،
ولكن لا
يُحدد
ترتيب بين
وحدات
المقابس.
إذا
اُستخدم
عنوان IP هنا،
فغالبًا ما
يكون من
المرغوب
الاستماع
عليه قبل أن
تكون
الواجهة
التي
كُوّنَ
عليها قيد
التشغيل،
وحتى بغض
النظر عما
إذا كانت
ستكون قيد
التشغيل في
أي وقت.
للتعامل مع
هذا، يُوصى
بتعيين
خيار FreeBind=
الموضح
أدناه.
ListenFIFO=
يحدد FIFO
لنظام
الملفات
(انظر
fifo(7)
للتفاصيل)
للاستماع
عليه. يتوقع
مسار نظام
ملفات مطلق
كوسيطة.
السلوك
بخلاف ذلك
مشابه جدًا
لتوجيه
ListenDatagram=
أعلاه.
ListenSpecial=
يحدد
ملفًا
خاصًا في
نظام
الملفات
للاستماع
عليه. يتوقع
مسار نظام
ملفات مطلق
كوسيطة.
السلوك
بخلاف ذلك
مشابه جدًا
لتوجيه ListenFIFO=
أعلاه.
استخدم هذا
لفتح عُقد
أجهزة
الأحرف
بالإضافة
إلى
الملفات
الخاصة في /proc/
و /sys/.
ListenNetlink=
يحدد
عائلة Netlink
لإنشاء
مقبس
للاستماع
عليه. يتوقع
سلسلة
قصيرة تشير
إلى اسم
عائلة AF_NETLINK
(مثل audit أو kobject-uevent)
كوسيطة، مع
لاحقة
اختيارية
بمسافة
متبوعة
بعدد صحيح
لمجموعة
البث
المتعدد.
السلوك
بخلاف ذلك
مشابه جدًا
لتوجيه ListenDatagram=
أعلاه.
ListenMessageQueue=
يحدد اسم
قائمة
انتظار
رسائل POSIX
للاستماع
عليها (انظر
mq_overview(7)
للتفاصيل).
يتوقع اسم
قائمة
انتظار
رسائل صالح
(أي يبدأ بـ
"/"). السلوك
بخلاف ذلك
مشابه جدًا
لتوجيه
ListenFIFO=
أعلاه. في Linux،
واصفات
قائمة
انتظار
الرسائل هي
في الواقع
واصفات
ملفات
ويمكن
توريثها
بين
العمليات.
ListenUSBFunction=
يحدد
موقع نقاط
نهاية
USB FunctionFS[1]
للاستماع
إليها،
لتنفيذ
وظائف أداة USB.
يتوقع هذا
مسار نظام
ملفات مطلق
لنقطة وصل FunctionFS
كمعامل.
السلوك
بخلاف ذلك
يشبه جداً
توجيه
ListenFIFO=
أعلاه.
استخدم هذا
لفتح نقطة
نهاية FunctionFS
المسماة ep0.
عند
استخدام
هذا
الخيار،
يجب أن تكون
الخدمة
الملحّة
مضبوطة
بخياري
USBFunctionDescriptors= و
USBFunctionStrings=.
أُضيف في
الإصدارة 227.
SocketProtocol=
يأخذ
واحدًا من
udplite أو
sctp أو
mptcp.
سيستخدم
المقبس
بروتوكول UDP-Lite
(
IPPROTO_UDPLITE) أو SCTP (
IPPROTO_SCTP)
أو MPTCP (
IPPROTO_MPTCP)، على
التوالي.
أُضيف في
الإصدارة 229.
BindIPv6Only=
يأخذ
واحدًا من
default أو
both أو
ipv6-only.
يتحكم في
خيار مقبس IPV6_V6ONLY
(انظر
ipv6(7)
للتفاصيل).
إذا كان
both،
فستكون
مقابس IPv6
المرتبطة
قابلة
للوصول عبر
كل من IPv4 وIPv6. إذا
كان
ipv6-only،
فستكون
قابلة
للوصول عبر IPv6
فقط. إذا كان
default (وهو
المبدئي،
مفاجأة!)،
يُستخدم
الإعداد
المبدئي
للنظام
بأكمله،
كما يتحكم
فيه /proc/sys/net/ipv6/bindv6only،
والذي
بدوره يكون
مبدئيًا
مكافئًا لـ
both.
Backlog=
يأخذ
وسيطة عدد
صحيح غير
موقع 32 بت.
يحدد عدد
الاتصالات
في قائمة
الانتظار
التي لم
تُقبل بعد.
هذا
الإعداد
مهم فقط
لمقابس
التدفق
والحزم
المتسلسلة.
انظر
listen(2)
للتفاصيل.
المبدئي هو
4294967295. لاحظ أن
هذه القيمة
تُحدد بصمت
بواسطة sysctl
"net.core.somaxconn"،
والذي يكون
مبدئيًا 4096
عادةً، لذا
فإن sysctl هو
الإعداد
المهم
فعليًا.
BindToDevice=
يحدد اسم
واجهة شبكة
لربط هذا
المقبس بها.
إذا عُين،
فسيُقبل
حركة
المرور فقط
من واجهات
الشبكة
المحددة.
يتحكم هذا
في خيار
مقبس
SO_BINDTODEVICE
(انظر
socket(7)
للتفاصيل).
إذا
اُستخدم
هذا
الخيار،
فستُنشئ
تبعية
ضمنية من
وحدة
المقبس هذه
على وحدة
جهاز واجهة
الشبكة
(انظر
systemd.device(5)).
لاحظ أن
تعيين هذه
المعلمة قد
يؤدي إلى
إضافة
تبعيات
إضافية إلى
الوحدة
(انظر
أعلاه).
SocketUser=, SocketGroup=
يأخذ اسم
مستخدم/مجموعة
UNIX. عند
تحديده،
تؤول ملكية
جميع مقابس
AF_UNIX، وعقد FIFO،
وصفوف
الرسائل
إلى
المستخدم
والمجموعة
المحددين.
إذا لم
يُضبط
(المبدئي)،
تؤول ملكية
العقد إلى
المستخدم/المجموعة
الجذر (إذا
نُفذ في
سياق
النظام) أو
المستخدم/المجموعة
المستدعِية
(إذا نُفذ في
سياق
المستخدم).
إذا حُدد
مستخدم فقط
دون
مجموعة،
تُشتق
المجموعة
من مجموعة
المستخدم
المبدئية.
أُضيف في
الإصدارة 214.
SocketMode=
إذا كان
الاستماع
يجري على
مقبس نظام
ملفات، أو FIFO،
أو صف
رسائل،
يحدد هذا
الخيار وضع
الوصول
لنظام
الملفات
المستخدم
عند إنشاء
عقدة الملف.
يأخذ وضع
الوصول
بالترميز
الثماني.
القيمة
المبدئية
هي 0666.
DirectoryMode=
إذا كان
الاستماع
يجري على
مقبس نظام
ملفات أو FIFO،
تُنشأ
الأدلة
الأبوية
آلياً عند
الحاجة.
يحدد هذا
الخيار وضع
الوصول
لنظام
الملفات
المستخدم
عند إنشاء
هذه الأدلة.
يأخذ وضع
الوصول
بالترميز
الثماني.
القيمة
المبدئية
هي 0755.
Accept=
يأخذ
وسيطًا
منطقيًا.
إذا كان
نعم، تُنشأ
نسخة خدمة
لكل اتصال
وارد
ويُمرر
إليها مقبس
الاتصال
فقط. إذا كان
لا، تُمرر
جميع مقابس
الاستماع
نفسها إلى
وحدة
الخدمة
المُبدأة،
وتُنشأ
وحدة خدمة
واحدة فقط
لجميع
الاتصالات
(انظر أيضًا
أعلاه).
تُتجاهل
هذه القيمة
لمقابس
البيانات (datagram)
و FIFOs حيث
تتعامل
وحدة خدمة
واحدة دون
قيد أو شرط
مع كل حركة
المرور
الواردة.
المبدئي هو
no. لأسباب
تتعلق
بالأداء،
يُوصى
بكتابة
خوادم
جديدة فقط
بطريقة
مناسبة لـ
Accept=no. قد
يستدعي
خادم يستمع
على مقبس
AF_UNIX، لكن ليس
من
الضروري،
close(2) على
المقبس
المستلم
قبل الخروج.
ومع ذلك،
يجب ألا
يفصل
المقبس عن
نظام
الملفات.
يجب ألا
يستدعي
shutdown(2)
على مقابس
حصل عليها
مع
Accept=no، لكن
قد يفعل ذلك
للمقابس
التي حصل
عليها مع
تعيين
Accept=yes.
تعيين
Accept=yes
مفيد بشكل
أساسي
للسماح
للخوادم
المُصممة
للاستخدام
مع
inetd(8)
بالعمل دون
تعديل مع
تفعيل مقبس
systemd.
لاحظ أنه
اعتمادًا
على هذا
الإعداد،
فإن
الخدمات
المُنشطة
بواسطة
وحدات من
هذا النوع
إما خدمات
عادية (في
حالة Accept=no) أو
مثيلات
لخدمات
مُقوْلبة
(في حالة
Accept=yes). راجع
قسم الوصف
أعلاه
لمناقشة
أكثر
تفصيلاً
لقواعد
تسمية
الخدمات
المُحفزة.
لاتصالات
IPv4 و IPv6، سيحتوي
متغير
البيئة $REMOTE_ADDR
على عنوان IP
البعيد،
وسيحتوي $REMOTE_PORT
على المنفذ
البعيد. هذا
هو نفس
التنسيق
المستخدم
بواسطة CGI.
لاتصالات
مقبس AF_UNIX،
سيحتوي
متغير
البيئة $REMOTE_ADDR
إما على
مسار نظام
الملفات
للمقبس
البعيد
بدءًا
بشرطة
مائلة ("/") أو
عنوانه في
الفضاء
المجرد (abstract namespace)
بدءًا برمز
"@". إذا كان
المقبس غير
مُسمى، فلن
يُعيّن $REMOTE_ADDR.
يُوصى
بتعيين
CollectMode=inactive-or-failed
لمثيلات
الخدمة
المُنشطة
عبر Accept=yes،
لضمان
تنظيف
خدمات
الاتصال
الفاشلة
وتحريرها
من
الذاكرة،
وعدم
تراكمها.
Writable=
يقبل
وسيطًا
منطقيًا.
يمكن
استخدامه
فقط مع
ListenSpecial=.
إذا كان
صحيحًا،
يُفتح
الملف
الخاص
المُحدد في
وضع
القراءة-الكتابة،
وإذا كان
خطأ، في وضع
القراءة
فقط.
المبدئي هو
خطأ.
أُضيف في
الإصدارة 227.
FlushPending=
يقبل
وسيطًا
منطقيًا.
يمكن
استخدامه
فقط عندما
Accept=no. إذا كان
نعم، تُمسح
مخازن
المقبس
المؤقتة
بعد خروج
الخدمة
المُحفزة.
يتسبب هذا
في تفريغ أي
بيانات
معلقة ورفض
أي اتصالات
واردة
معلقة. إذا
كان لا، لن
تُمسح
مخازن
المقبس
المؤقتة،
مما يسمح
للخدمة
بمعالجة أي
اتصالات
معلقة بعد
إعادة
التشغيل،
وهو السلوك
المتوقع
عادةً.
المبدئي هو
لا.
أُضيف في
الإصدار 247.
MaxConnections=
الحد
الأقصى
لعدد
الاتصالات
لتشغيل
مثيلات
الخدمة
بشكل
متزامن،
عند تعيين
Accept=yes. إذا جاءت
اتصالات
متزامنة
أكثر،
فستُرفض
حتى يُنهى
اتصال
موجود واحد
على الأقل.
ليس لهذا
الإعداد
تأثير على
المقابس
المُهيأة
بـ Accept=no أو
مقابس
الرزم (datagram).
المبدئي هو
64.
MaxConnectionsPerSource=
الحد
الأقصى
لعدد
الاتصالات
لخدمة لكل
عنوان IP مصدر
(في حالة IPv4/IPv6)،
لكل CID مصدر
(في حالة
AF_VSOCK)،
أو UID مصدر (في
حالة
AF_UNIX). هذا
مشابه جدًا
للتوجيه
MaxConnections= أعلاه.
المبدئي هو
0، أي معطل.
أُضيف في
الإصدار 232.
KeepAlive=
يأخذ
وسيطًا
منطقيًا.
إذا كان
صحيحًا،
سيرسل مكدس
TCP/IP رسالة keep alive
بعد ساعتين
(اعتمادًا
على تكوين
/proc/sys/net/ipv4/tcp_keepalive_time)
لجميع
تدفقات TCP
المقبولة
على هذا
المقبس.
يتحكم هذا
في خيار
المقبس
SO_KEEPALIVE
(انظر
socket(7) و
دليل TCP Keepalive[2]
للتفاصيل.)
المبدئي هو
false.
KeepAliveTimeSec=
يأخذ
وقتًا
(بالثواني)
كوسيط.
يحتاج
الاتصال
إلى البقاء
خاملاً قبل
أن يبدأ TCP في
إرسال
استقصاءات
keepalive. يتحكم هذا
في خيار
المقبس TCP_KEEPIDLE
(انظر
socket(7) و
دليل TCP Keepalive[2]
للتفاصيل.)
القيمة
المبدئية
هي 7200 ثانية
(ساعتان).
أُضيف في
الإصدارة 216.
KeepAliveIntervalSec=
يأخذ
وقتًا
(بالثواني)
كوسيط بين
استقصاءات
keepalive الفردية،
إذا عُين
خيار
المقبس
SO_KEEPALIVE
على هذا
المقبس.
يتحكم هذا
في خيار
المقبس
TCP_KEEPINTVL
(انظر
socket(7) و
دليل TCP Keepalive[2]
للتفاصيل.)
القيمة
المبدئية
هي 75 ثانية.
أُضيف في
الإصدارة 216.
KeepAliveProbes=
يأخذ
عددًا
صحيحًا
كوسيط. هو
عدد
الاستقصاءات
غير
المؤكدة
لإرسالها
قبل اعتبار
الاتصال
ميتًا
وإخطار
طبقة
التطبيق.
يتحكم هذا
في خيار
المقبس TCP_KEEPCNT
(انظر
socket(7) و
دليل TCP Keepalive[2]
للتفاصيل.)
القيمة
المبدئية
هي 9.
أُضيف في
الإصدارة 216.
NoDelay=
يقبل
وسيطًا
منطقيًا.
تعمل
خوارزمية Nagle
لـ TCP من خلال
دمج عدد من
الرسائل
الصغيرة
الصادرة،
وإرسالها
جميعًا مرة
واحدة.
يتحكم هذا
في خيار
مقبس TCP_NODELAY (انظر
tcp(7)). المبدئي
هو
خطأ.
أُضيف في
الإصدارة 216.
Priority=
يقبل
وسيطًا
صحيحًا
يتحكم في
الأولوية
لجميع حركة
المرور
المُرسلة
من هذا
المقبس.
يتحكم هذا
في خيار
مقبس
SO_PRIORITY
(انظر
socket(7)
للتفاصيل.).
DeferAcceptSec=
يأخذ
الوقت
(بالثواني)
كمعامل. إذا
ضُبط،
ستُوقظ
عملية
الاستماع
فقط عند
وصول
بيانات إلى
المقبس،
وليس فوراً
عند إنشاء
الاتصال.
عند ضبط هذا
الخيار،
سيُستخدم
خيار
المقبس
TCP_DEFER_ACCEPT
(انظر
tcp(7))،
وستتجاهل
النواة حزم ACK
الأولية
الخالية من
البيانات.
يحدد
المعامل
مقدار
الوقت
التقريبي
الذي يجب
على النواة
انتظاره
لورود
البيانات
قبل العودة
إلى السلوك
العادي
المتمثل في
قبول حزم ACK
الفارغة.
هذا الخيار
مفيد
للبروتوكولات
التي يرسل
فيها
العميل
البيانات
أولاً (مثل
HTTP، على عكس SMTP)،
لأن عملية
الخادوم لن
تُوقظ بلا
داعٍ قبل أن
تتمكن من
اتخاذ أي
إجراء.
إذا
استخدم
العميل
أيضًا خيار
TCP_DEFER_ACCEPT، فقد
ينخفض زمن
الوصول
للاتصال
الأولي،
لأن النواة
سترسل
البيانات
في الحزمة
الأخيرة
التي تؤسس
الاتصال
(الحزمة
الثالثة في
"المصافحة
الثلاثية").
معطل
مبدئيًا.
أُضيف في
الإصدارة 216.
ReceiveBuffer=, SendBuffer=
يأخذ
وسيطة
عددية
تتحكم في
أحجام
مخازن
الاستقبال
أو الإرسال
لهذه
المقبس،
على
التوالي.
يتحكم هذا
في خيارات
المقبس
SO_RCVBUF
و
SO_SNDBUF (انظر
socket(7)
للتفاصيل.).
اللواحق
المعتادة K،
M، G مدعومة
وتُفهم على
أساس 1024.
IPTOS=
يأخذ
وسيطة
عددية
تتحكم في
حقل نوع
الخدمة IP
للحزم
المولدة من
هذا المقبس.
يتحكم هذا
في خيار
المقبس
IP_TOS
(انظر
ip(7)
للتفاصيل.).
يمكن تحديد
سلسلة
رقمية أو
واحدة من
low-delay،
throughput،
reliability
أو
low-cost.
IPTTL=
يأخذ
وسيطة
عددية
تتحكم في
حقل وقت
الحياة IPv4/عدد
القفزات IPv6
للحزم
المولدة من
هذا المقبس.
يضبط هذا
خيارات
المقبس
IP_TTL/
IPV6_UNICAST_HOPS (انظر
ip(7) و
ipv6(7)
للتفاصيل.)
Mark=
يأخذ
قيمة عددية.
يتحكم في
علامة جدار
الحماية
للحزم
المولدة من
هذا المقبس.
يمكن
استخدام
هذا في منطق
جدار
الحماية
لتصفية
الحزم من
هذا المقبس.
يضبط هذا
خيار
المقبس
SO_MARK.
انظر
iptables(8)
للتفاصيل.
ReusePort=
يأخذ
قيمة
منطقية. إذا
كانت
صحيحة،
يسمح
بعمليات
bind(2)
متعددة
لهذا
المنفذ TCP أو UDP.
يتحكم هذا
في خيار
المقبس
SO_REUSEPORT.
انظر
socket(7)
للتفاصيل.
أُضيف في
الإصدارة 206.
SmackLabel=, SmackLabelIPIn=,
SmackLabelIPOut=
يأخذ
قيمة نصية.
يتحكم في
السمات
الموسعة
"security.SMACK64" و "security.SMACK64IPIN"
و "security.SMACK64IPOUT"، على
التوالي،
أي تسمية
الأمان لـ FIFO،
أو تسمية
الأمان
للاتصالات
الواردة أو
الصادرة
للمقبس،
على
التوالي.
انظر
Smack[3]
للتفاصيل.
أُضيف في
الإصدارة 196.
SELinuxContextFromNet=
يأخذ
وسيطة
منطقية.
عندما تكون
صحيحة،
سيحاول systemd
تحديد
تسمية SELinux
المستخدمة
للخدمة
المثبتة من
المعلومات
المقدمة من
النظير عبر
الشبكة.
لاحظ أن
مستوى
الأمان فقط
يُستخدم من
المعلومات
المقدمة من
النظير.
الأجزاء
الأخرى من
سياق SELinux
الناتج
تنشأ إما من
الثنائي
الهدف الذي
يُشغل
فعليًا
بواسطة
وحدة
المقبس أو
من قيمة
خيار
SELinuxContext=.
ينطبق خيار
التهيئة
هذا فقط
عندما
تُمرر
الخدمة
المفعلة في
واصف ملف
مقبس واحد،
أي مثيلات
الخدمة
التي لها
إدخال
قياسي متصل
بمقبس أو
خدمات
تُشغل
بواسطة
وحدة مقبس
واحدة
بالضبط.
لاحظ أيضًا
أن هذا
الخيار
مفيد فقط
عند نشر
سياسة SELinux MLS/MCS.
المبدئي هو
"false".
أُضيف في
الإصدارة 217.
PipeSize=
يأخذ
حجمًا
بالبايت.
يتحكم في
حجم مخزن
الأنبوب لـ
FIFOs المكونة
في وحدة
المقبس هذه.
انظر
fcntl(2)
للتفاصيل.
اللواحق
المعتادة K،
M، G مدعومة
وتُفهم على
أساس 1024.
MessageQueueMaxMessages=,
MessageQueueMessageSize=
تأخذ
هاتان
الإعدادتان
قيمًا
عددية
وتتحكمان
في حقل mq_maxmsg أو
حقل mq_msgsize، على
التوالي،
عند إنشاء
قائمة
انتظار
الرسائل.
لاحظ أنه
يجب تعيين
أي من هذين
المتغيرين
أو كليهما.
انظر
mq_setattr(3)
للتفاصيل.
FreeBind=
يأخذ
قيمة
منطقية.
يتحكم في ما
إذا كان
يمكن ربط
المقبس
بعناوين IP
غير محلية.
هذا مفيد
لتكوين
مقابس
تستمع على
عناوين IP
محددة قبل
تكوين تلك
العناوين
بنجاح على
واجهة شبكة.
يضبط هذا
خيار
المقبس
IP_FREEBIND/IPV6_FREEBIND.
لأسباب
المتانة،
يُوصى
باستخدام
هذا الخيار
كلما ربطت
مقبسًا
بعنوان IP
محدد.
المبدئي هو
false.
Transparent=
يأخذ
قيمة
منطقية.
يتحكم في
خيار
المقبس
IP_TRANSPARENT/IPV6_TRANSPARENT.
المبدئي هو
false.
Broadcast=
يأخذ
قيمة
منطقية.
يتحكم هذا
في خيار
المقبس SO_BROADCAST،
الذي يسمح
بإرسال
مخططات
بيانات
البث من هذا
المقبس.
المبدئي هو
false.
PassCredentials=
يأخذ
قيمة
منطقية.
يتحكم هذا
في خيار
المقبس SO_PASSCRED،
الذي يسمح
لمقابس AF_UNIX
باستقبال
بيانات
اعتماد
العملية
المرسلة في
رسالة
مساعدة.
المبدئي هو
false.
PassSecurity=
يأخذ
قيمة
منطقية.
يتحكم هذا
في خيار
المقبس SO_PASSSEC،
الذي يسمح
لمقابس AF_UNIX
باستقبال
سياق
الأمان
للعملية
المرسلة في
رسالة
مساعدة.
المبدئي هو
false.
PassPacketInfo=
يأخذ
قيمة
منطقية.
يتحكم هذا
في خيارات
المقبس
IP_PKTINFO،
IPV6_RECVPKTINFO،
NETLINK_PKTINFO أو
PACKET_AUXDATA، التي
تمكن
استقبال
بيانات
وصفية
إضافية لكل
حزمة
كرسالة
مساعدة،
على مقابس
AF_INET،
AF_INET6،
AF_UNIX
و
AF_PACKET.
المبدئي هو
false.
أُضيف في
الإصدار 246.
Timestamping=
يأخذ
واحدة من
"off"، "us"
(الاسم
المستعار:
"usec"، "μs") أو
"ns" (الاسم
المستعار:
"nsec"). يتحكم
هذا في
خيارات
المقبس
SO_TIMESTAMP
أو
SO_TIMESTAMPNS،
ويمكّن ما
إذا كان
حركة مرور
الشبكة
الواردة
ستحمل
بيانات
وصفية
للطابع
الزمني.
المبدئي هو
off.
أُضيف في
الإصدار 247.
TCPCongestion=
يأخذ
قيمة نصية.
يتحكم في
خوارزمية
ازدحام TCP
المستخدمة
بواسطة هذا
المقبس. يجب
أن تكون
إحدى "westwood" أو
"reno" أو "cubic" أو
"lp" أو أي
خوارزمية
أخرى متاحة
يدعمها
مكدس IP. ينطبق
هذا
الإعداد
فقط على
مقابس
التدفق.
ExecStartPre=، ExecStartPost=
يأخذ سطر
أوامر واحد
أو أكثر،
تُنفذ قبل
أو بعد
إنشاء وربط
مقابس
الاستماع/FIFOs،
على
التوالي.
يجب أن يكون
الرمز
الأول من
سطر
الأوامر
اسم ملف
مطلق،
متبوعًا
بالوسائط
الخاصة
بالعملية.
يمكن تحديد
أسطر أوامر
متعددة
باتباع نفس
المخطط
المستخدم
لـ ExecStartPre= في
ملفات
وحدات
الخدمة.
ExecStopPre=, ExecStopPost=
أوامر
إضافية
تُنفذ قبل
أو بعد
إغلاق
وإزالة
مقابس
الاستماع/FIFOs،
على
التوالي.
يمكن تحديد
أسطر أوامر
متعددة
باتباع نفس
المخطط
المستخدم
لـ ExecStartPre= في
ملفات
وحدات
الخدمة.
TimeoutSec=
يهيئ
الوقت
للانتظار
حتى انتهاء
الأوامر
المحددة في
ExecStartPre= و
ExecStartPost= و
ExecStopPre= و
ExecStopPost=. إذا
لم يخرج
الأمر خلال
الوقت
المهيأ،
يعتبر
المقبس
فاشلًا
ويُوقف
تشغيله مرة
أخرى. تُنهى
جميع
الأوامر
التي لا
تزال قيد
التشغيل
بالقوة عبر
SIGTERM، وبعد
تأخير
إضافي بنفس
الوقت
باستخدام
SIGKILL. (انظر
KillMode=
في
systemd.kill(5).) يأخذ
قيمة بدون
وحدة
بالثواني،
أو قيمة
زمنية مثل "5min
20s". مرر "0"
لتعطيل
منطق
المهلة.
المبدئي هو
DefaultTimeoutStartSec= من ملف
تهيئة
المدير
(انظر
systemd-system.conf(5)).
Service=
يحدد اسم
وحدة
الخدمة
لتفعيلها
عند حركة
المرور
الواردة.
هذا
الإعداد
مسموح به
فقط
للمقابس
ذات Accept=no.
المبدئي هو
الخدمة
التي تحمل
نفس اسم
المقبس (مع
استبدال
اللاحقة). في
معظم
الحالات،
لا ينبغي أن
يكون من
الضروري
استخدام
هذا الخيار.
لاحظ أن
تعيين هذه
المعلمة قد
يؤدي إلى
إضافة
تبعيات
إضافية
للوحدة
(انظر
أعلاه).
RemoveOnStop=
يأخذ
وسيطة
منطقية. إذا
فُعّل،
تُزال أي
عقد ملفات
مُنشأة
بواسطة
وحدة
المقبس هذه
عند
إيقافها.
ينطبق هذا
على مقابس
AF_UNIX في نظام
الملفات،
وقوائم
انتظار
رسائل POSIX، وFIFOs،
بالإضافة
إلى أي
روابط
رمزية لها
مهيأة بـ
Symlinks=.
عادةً، لا
ينبغي أن
يكون من
الضروري
استخدام
هذا
الخيار،
ولا يُوصى
به لأن
الخدمات قد
تستمر في
العمل بعد
إنهاء وحدة
المقبس
ويجب أن يظل
من الممكن
التواصل
معها عبر
عقدة نظام
الملفات
الخاصة بها.
المبدئي هو
إيقاف
التشغيل.
أُضيف في
الإصدارة 214.
Symlinks=
يأخذ
قائمة
بمسارات
نظام
الملفات.
يُنشئ
المسارات
المحددة
كروابط
رمزية
لمسار مقبس
AF_UNIX أو مسار FIFO
لوحدة
المقبس هذه.
إذا
اُستخدم
هذا
الإعداد،
يمكن تهيئة
مقبس
AF_UNIX
واحد فقط في
نظام
الملفات أو FIFO
واحد لوحدة
المقبس.
استخدم هذا
الخيار
لإدارة اسم
مستعار
واحد أو
أكثر مرتبط
رمزيًا
لمقبس، مع
ربط دورة
حياتها
معًا. لاحظ
أنه إذا فشل
إنشاء رابط
رمزي، لا
يعتبر هذا
قاتلًا
لوحدة
المقبس،
وقد تظل
وحدة
المقبس
تبدأ. إذا
عُين سلسلة
فارغة،
تُنفذ
تعيين
قائمة
المسارات.
المبدئي هو
قائمة
فارغة.
أُضيف في
الإصدارة 214.
FileDescriptorName=
يعين
اسمًا
لجميع
واصفات
الملفات
التي
تغلفها
وحدة
المقبس هذه.
هذا مفيد
لمساعدة
الخدمات
المفعلة
على تحديد
واصفات
ملفات
محددة، إذا
مُررت
واصفات
متعددة.
يمكن
للخدمات
استخدام
استدعاء
sd_listen_fds_with_names(3)
للحصول على
الأسماء
المهيأة
لواصفات
الملفات
المستلمة.
قد تحتوي
الأسماء
على أي حرف
ASCII، ولكن يجب
استبعاد
أحرف
التحكم و
":"، ويجب أن
يكون الطول 255
حرفًا كحد
أقصى. إذا لم
يُستخدم
هذا
الإعداد،
فإن اسم
واصف الملف
المبدئي هو
اسم وحدة
المقبس (بما
في ذلك
لاحقة .socket)
عندما
Accept=no، و
"connection" بخلاف
ذلك.
أُضيف في
الإصدارة 227.
TriggerLimitIntervalSec=،
TriggerLimitBurst=
يهيئ
حدًا لعدد
مرات تفعيل
وحدة
المقبس هذه
ضمن فاصل
زمني محدد.
يمكن
استخدام
إعداد
TriggerLimitIntervalSec=
لتهيئة طول
الفاصل
الزمني
بوحدات
الوقت
المعتادة
"us" و "ms" و "s" و
"min" و "h" و ...
والمبدئي
هو 2 ثانية
(انظر
systemd.time(7)
للحصول على
تفاصيل حول
وحدات
الوقت
المختلفة
المفهومة).
يأخذ إعداد
TriggerLimitBurst= قيمة
عدد صحيح
موجب ويحدد
عدد
التفعيلات
المسموح
بها لكل
فاصل زمني،
والمبدئي
هو 200 لمقابس
Accept=yes
(وبالتالي
يسمح
مبدئيًا بـ 200
تفعيل لكل 2
ثانية)، و 20
بخلاف ذلك (20
تفعيل لكل 2
ثانية). اضبط
أيًا منهما
على 0 لتعطيل
أي شكل من
أشكال
تحديد معدل
التشغيل.
إذا تُجوز
الحد، توضع
وحدة
المقبس في
وضع الفشل،
ولن تكون
قابلة
للاتصال
بعد الآن
حتى إعادة
التشغيل.
لاحظ أن هذا
الحد يُفرض
قبل وضع
تفعيل
الخدمة في
قائمة
الانتظار.
قارن مع
PollLimitIntervalSec=/PollLimitBurst=
الموضح
أدناه،
والذي ينفذ
تباطؤًا
مؤقتًا إذا
غمرت حركة
المرور
الواردة
وحدة
المقبس،
على عكس
حالة الفشل
الدائم
التي ينتج
عنها
TriggerLimitIntervalSec=/TriggerLimitBurst=.
أُضيف في
الإصدارة 230.
PollLimitIntervalSec=, PollLimitBurst=
يهيئ
حدًا لعدد
مرات النظر
في أحداث
الاستقصاء
على واصفات
الملفات
الداعمة
لوحدة
المقبس هذه.
هذا الزوج
من
الإعدادات
مشابه لـ
TriggerLimitIntervalSec=/
TriggerLimitBurst=
ولكن بدلاً
من وضع حد
(قاتل) على
تردد
التفعيل،
يضع حدًا
(عابرًا) على
تردد
الاستقصاء.
بناء
الجملة
والنطاق
المتوقعان
للمعاملات
متطابقان
مع
الخيارات
المذكورة
أعلاه،
ويمكن
تعطيلهما
بنفس
الطريقة.
إذا تُجوز
حد
الاستقصاء،
يُعطل
الاستقصاء
مؤقتًا
عليه حتى
تمر
النافذة
الزمنية
المحددة.
وبالتالي،
يبطئ حد
الاستقصاء
محاولات
الاتصال
إذا تُجوزَ
، ولكن على
عكس حد
التشغيل،
لن يتسبب في
فشل دائم.
إنها
الآلية
الموصى بها
للتعامل مع
محاولات
رفض الخدمة
من خلال فيض
الحزم.
يُفرض حد
الاستقصاء
لكل واصف
ملف
للاستماع
عليه، على
عكس حد
التشغيل
الذي يُفرض
لوحدة
المقبس
بأكملها.
هذا
التمييز
مهم لوحدات
المقبس
التي تستمع
على واصفات
ملفات
متعددة (أي
تحتوي على
مقاطع ListenXYZ=
متعددة).
المبدئي
لهذه
الإعدادات
هو 150 (في حالة
Accept=yes) و 15 (بخلاف
ذلك) حدث
استقصاء
لكل 2 ثانية.
هذا أقل
بكثير من
القيم
المبدئية
لحد
التشغيل
(انظر أعلاه)
ويعني أن حد
الاستقصاء
يجب أن يضمن
عادةً عدم
تجاوز حد
التشغيل
أبدًا، ما
لم تُنفذ
تهيئة
أحدهما أو
تعطيله.
أُضيف في
الإصدار 255.
PassFileDescriptorsToExec=
يأخذ
معاملاً
منطقياً.
القيمة
المبدئية
هي الإيقاف.
في حال
تفعيله،
تُمَرر
واصفات
الملفات
التي
أنشأتها
وحدة
المقبس إلى
أوامر
ExecStartPost= و
ExecStopPre= و
ExecStopPost= من
وحدة
المقبس.
يمكن
الوصول إلى
واصفات
الملفات
الممررة
باستخدام
sd_listen_fds(3) كما لو
أن الأوامر
استُدعيت
من وحدات
الخدمة
المرتبطة
بها. لاحظ أن
الأمر
ExecStartPre= لا
يمكنه
الوصول إلى
واصفات
ملفات
المقبس.
أُضيف في
الإصدار 256.
تحقق من
systemd.unit(5)، و systemd.exec(5)،
و systemd.kill(5) لمزيد
من
الإعدادات.