کام لاگ اِن پر چلتا ہے، لاگ کلائنٹ کے شروع ہونے کو دکھاتا ہے، لیکن سرنگ کبھی نہیں اٹھتی۔ یا اٹھتی ہے اور چند سیکنڈ بعد غائب ہو جاتی ہے۔ دونوں صورتوں میں خصوصیات کی فہرست غالباً درست تھی۔ launchd نے کام قبول کرتے وقت دو وعدے کیے: وہ ایک عمل کی نگرانی کرے گا، اور وہ عمل جاری رہے گا۔ VPN کو دونوں درکار ہیں، اور درست XML فائل کوئی بھی نہیں دیتی۔

درست خصوصیات کی فہرست چلتی ہوئی سروس نہیں ہے

plutil -lint ساخت جانچتا ہے۔ یہ نہیں بتا سکتا کہ بائنری موجود ہے، اس کلائنٹ ورژن میں دلائل کی معاونت ہے، یا کام ایسے سیاق میں شروع ہوتا ہے جہاں اسناد دستیاب ہیں۔ یہ معنوی سوالات ہیں اور launchd کے مسائل جیسے نظر آنے والی زیادہ تر ناکامیوں کی وجہ یہی ہیں۔

plutil -lint /Library/LaunchDaemons/com.example.vpn.plist
launchctl print system/com.example.vpn

کام لوڈ ہو گیا فرض کرنے کے بجائے دوسرے حکم کا آؤٹ پٹ پڑھیں۔ یہ آخری اخراج کی حالت اور سروس کے چلنے کی اطلاع دیتا ہے، جو پروفائل کو چھونے سے پہلے "کبھی شروع نہیں ہوا" اور "شروع ہو کر مر گیا" میں فرق کرتا ہے۔

ایجنٹ صارف کا سیشن ورثے میں پاتے ہیں، ڈیمن نہیں

Apple کی launchd دستاویزات ہر صارف کے ایجنٹ کو نظام کے ڈیمن سے الگ کرتی ہیں۔ ایجنٹ لاگ اِن شدہ صارف کے سیاق میں، اس کی کی چین اور ماحول کے ساتھ چلتا ہے۔ ڈیمن اس سیشن کے بغیر چلتا ہے، اور کام کو نظام کی ڈائریکٹری میں منتقل کرنا صارف کی متعامل اسناد دوبارہ پیدا نہیں کرتا۔

ڈیزائن کا فیصلہ یہی فرق کرتا ہے۔ اگر کنکشن کے لیے کسی شخص کا لاگ اِن یا MFA درخواست کی منظوری ضروری ہو، تو معاون ترتیب یہ ہے صارف کے سیشن میں کام جو لاگ اِن کے بعد چلتا ہے۔ اگر اسے بغیر کسی کے لاگ اِن چلنا ہو، تو کلائنٹ کو اپنے تجدید اور منسوخی کے عمل کے ساتھ منظور شدہ بے نگرانی شناخت درکار ہے۔ غلط قطار چننے سے ایسا کام بنتا ہے جو صاف شروع ہو کر پہلے تصدیقی مرحلے میں ناکام ہو جاتا ہے۔

اس فرق کو دلائل کی صف میں پاس ورڈ یا سرٹیفکیٹ جانچ بند کر کے نہ چھپائیں۔ دونوں تصدیق کی ضرورت کو پڑھی جا سکنے والی فائل میں مستقل راز بنا دیتے ہیں، اور دوسرے کا مطلب ہے کہ سرنگ ہر جواب دینے والے کی تصدیق کرتی ہے۔

نگرانی صرف اسی وقت کام کرتی ہے جب عمل سامنے رہے

جو کلائنٹ خود کو ڈیمن بنا لیتا ہے وہ کنٹرول فوراً launchd کو واپس دے دیتا ہے، اور پھر نگران ایسے عمل کو دیکھتا ہے جو پہلے ہی ختم ہو چکا ہے۔ سرنگ اوپر ہو سکتی ہے، لیکن launchd سمجھتا ہے کہ کام ناکام ہوا، اور اس کی دوبارہ آغاز کی پالیسی وہ کرتی ہے جو آپ کا مقصد نہ تھا۔

کلائنٹ کا دستاویزی سامنے والا یا سروس موڈ استعمال کریں۔ اگر مصنوعات میں اپنی معاون اسٹارٹ اپ خصوصیت ہے، تو وہ پہلے سے جانتی ہے کہ سامنے کیسے رہنا ہے اور نیٹ ورک اسٹیک کو کیسے سونپنا ہے؛ حسب ضرورت کام الگ ڈیزائن ہے، اس کی بہتری نہیں۔

کام کو منفرد لیبل، مطلوبہ ایگزیکیوٹیبل اور سوچے سمجھے دلائل کی صف دیں۔ صف shell کی کمانڈ لائن نہیں ہے، اس لیے پائپ اور ری ڈائریکشن وہاں کام نہیں کرتے، اور اقتباس کا رویہ مختلف ہے۔ منتظم کے ٹرمینل میں کامیاب ہونے والا حکم زیادہ سے زیادہ ابتدائی جانچ ہے۔

اسناد کو بغیر درخواست کے کام کرنا چاہیے

بے نگرانی کارروائی اسناد کا مسئلہ ہٹانے کے بجائے منتقل کرتی ہے۔ کسی کو شناخت کی ملکیت لینی ہے، طے کرنا ہے کہ وہ کتنی دیر زندہ رہے گی، اور دستاویز کرنا ہے کہ اسے کیسے بدلا جاتا ہے۔ اختتام کی نگرانی کے بغیر سرٹیفکیٹ کیلنڈر میں تاریخ والی رکاوٹ بن جاتا ہے۔

راز دلائل اور کام کے معیاری آؤٹ پٹ سے دور رکھیں۔ اگر کلائنٹ محفوظ ذخیرے سے اسناد پڑھنے کی معاونت کرتا ہے، تو وہ راستہ استعمال کریں، اور جانچیں کہ کام کے عمل درآمد کا سیاق ذخیرے تک پہنچ سکتا ہے۔ root کے طور پر چلنے والا ڈیمن عام طور پر لاگ اِن کی چین کا آئٹم نہیں پڑھ سکتا، اور یہ ایسی تفصیل ہے جو صرف نظام کے سیاق میں سامنے آتی ہے۔

تیار کا مطلب متعین کریں، پھر وہیں جانچیں

کامیاب آغاز ثابت کرتا ہے کہ عمل شروع ہوا۔ یہ ثابت نہیں کرتا کہ نیٹ ورک اوپر ہے، گیٹ وے نے شناخت قبول کی، یا نجی ایپلیکیشن قابل رسائی ہے۔ اگر کوئی اور چیز سرنگ پر منحصر ہے، تو اسے کام کے آغاز کے وقت کے بجائے کنکشن کی عکاسی کرنے والا تیاری کا اشارہ درکار ہے۔

دوبارہ کوششیں محدود ہونی چاہئیں اور غائب نیٹ ورک کو مسترد شدہ اسناد سے الگ کرنا چاہئیں۔ ہر ناکامی پر دوبارہ آغاز ختم شدہ سرٹیفکیٹ کی مرمت نہیں کر سکتا اور ایسی لاگ بناتا ہے جو اصلی کو چھپانے والی یکساں کوششوں سے بھری ہو۔

کام کو اسی سیاق میں قبول کریں جس میں وہ واقعی چلے گا: بوٹ پر نیٹ ورک نہیں، معمول کا لاگ اِن، نیند سے بیداری اور کنٹرول شدہ توقف۔ پھر کام کا لیبل، کلائنٹ ورژن اور پروفائل کی نظر ثانی اکٹھے درج کریں، تاکہ اگلا شخص ایک بار چلی ہوئی فائل کے بجائے قابل انتساب سروس کا وارث ہو۔

متعلقہ مضامین