سؤال كيف يمكنني تكوين خدمة لتشغيل عند بدء التشغيل


لدي خفي أن يعمل بشكل جيد إذا بدأت يدويا مع service أمر:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

ولكن لم يتم تكوينها لبدء التشغيل التلقائي عند إعادة تمهيد الكمبيوتر.

كيف يمكنني تكوينه لبدء التشغيل تلقائيًا ، حتى إذا لم يتم تسجيل أي شخص في جهاز الكمبيوتر؟


209
2017-10-25 13:46


الأصل


@ user154721 ما هي الحجج التي قدمتها لـ update-rc.d لجعل عمل autostart يعمل؟ لقد جربت العديد من الخيارات ولكن لم يكن لدي أي حظ. - BennyTheBen


الأجوبة:


sudo update-rc.d minidlna defaults

هذا يجب إضافة الخدمة إلى نظام بدء التشغيل التلقائي. لكن إذا حصلت على:

System start/stop links for /etc/init.d/minidlna already exist.

افعل الأمر

sudo update-rc.d minidlna enable

ملاحظة: للحصول على مزيد من التفاصيل ، انظر إلى صفحة man للتحديث rc.d عن طريق كتابة الأمر man update-rc.d


241
2017-10-25 14:09



شكرا ، ولكن ماذا لو حصلت على هذا الإخراج عند تشغيل هذا الأمر؟ System start/stop links for /etc/init.d/minidlna already exist. - Ricardo Reyes
أنا grep'd ل minidlna في جميع الملفات في / var / log ، ولم أستطع العثور على أي ذكر للخدمة عند بدء التشغيل - Ricardo Reyes
إذا لم يكتب minidlna إلى أي ملف سجل فلن تجده في أي مكان. هل ربما تفشل بسبب عدم وجود اتصال بالشبكة عند البدء؟ حاول الاطلاع على التكوين إذا كان من الممكن تشغيل تصحيح الأخطاء و / أو تسجيل الدخول لمعرفة ما الخطأ. - LassePoulsen
استخدامRicardoReyes sudo update-rc.d -f minidlna remove لإزالة الروابط الموجودة. - Dogweather
أتلقى أدناه خطأ update-rc.d: /etc/init.d/usermanage: الملف غير موجود - Rizwan Patel


في بعض الأحيان تحتاج إلى تشغيل برنامج نصي في عملية التمهيد ، على سبيل المثال ، تشغيل تكوين iptables عند عملية التمهيد. لذلك ليس عليك تشغيل البرنامج النصي يدويًا كل إعادة تشغيل.

يمكنك تشغيل البرنامج النصي الخاص بك في عملية التمهيد في Ubuntu عن طريق إضافته إلى /etc/init.d/rc.local ملف. انظر إلى الخطوات أدناه.

  1. افتح /etc/rc.local ملف بهذا الأمر:

    vim /etc/rc.local
    
  2. أضف النص البرمجي الذي تريد تشغيله في عملية التمهيد هناك ، على سبيل المثال:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. راجع التعليقات المضمنة في هذا الملف وتأكد من أن مخرج 0 في النهاية.

  4. احفظ الملفات. وسيتم تشغيل البرنامج النصي الخاص بك في عملية التمهيد.


31
2017-10-25 13:52



تعليقات /etc/init.d/rc.local في Ubuntu 12.04 تقول "Short-Description: Run /etc/rc.local إذا كانت موجودة" ، لذلك ربما تكون إضافة البرامج النصية إلى /etc/rc.local أفضل فكرة؟ - Sanghyun Lee
هل ستصدر هذه الطريقة أمر "إيقاف التشغيل" للخدمة أم تقضي فقط على العملية عند إيقاف تشغيل نظام التشغيل؟ - Vadim Chekan
يتم تشغيل Vadim ، rc.local فقط في التمهيد ، لا يتحقق شيء عند إيقاف التشغيل. من المرجح أن يتم قتل العملية بواسطة نظام التشغيل عند إيقاف التشغيل. - Weboide
لمعلوماتك: الفرق بين rc.local مقارنة بإضافته إلى init ، يتم تنفيذ ذلك rc.local في نهاية تسلسل بدء التشغيل init ، بدلاً من جزء منه - BobTuckerman


  • لبدء البرنامج الخفي عند بدء التشغيل:

    update-rc.d service_name defaults
    
  • لازالة:

    update-rc.d -f service_name remove
    

defaults => مستويات التشغيل الافتراضية 2،3،4 و 5

مثال:

update-rc.d tomcat7 defaults

26
2018-01-15 12:20



عندما أفعل هذا الأمر ، أحصل على "وصلات بدء / إيقاف النظام لـ /etc/init.d/tomcat7 موجودة بالفعل". ومع ذلك ، عند إعادة تشغيل الكمبيوتر ، فإنه لا يبدأ tomcat ، يجب أن أفعل دائما "خدمة tomcat7 start". - John Little
في حالتي sudo update-rc.d myservice يكتمل الإعداد الافتراضي دائمًا دون أي إخراج ولن تبدأ الخدمة عند الإقلاع أو مع خدمة sudo myservice البداية الذي يكمل أيضا بصمت. sudo /etc/init.d/myservice startيعمل مع ذلك - axk