/Etc/rc.local और /etc/init.d/rc.local में क्या अंतर है?


30

मैं iptablesअपने नए में एक स्थायी नियम जोड़ना चाहता हूं VPS, और संक्षिप्त Google खोज के बाद मुझे आश्चर्य हुआ कि दो स्थान हैं इस नियम को जोड़ा जा सकता है, जो समान लगता है: /etc/rc.localऔर /etc/init.d/rc.local। शायद किसी को पता है कि सरल स्टार्टअप कोड के लिए दो स्थान क्यों हैं? क्या यह लिनक्स का स्वाद विशिष्ट है (लेकिन उबंटू में दोनों है!)। या उनमें से एक पदावनत है?


1
एक को दूसरे के प्रति सहानुभूति होनी चाहिए।
इग्नासियो वाज़केज़-अब्राम्स

2
@ उबंटू सर्वर 12.04 x86 LTS पर IgnacioVazquez-Abrams वे पूरी तरह से अलग हैं :(!
grigoryvp

1
@ इग्नासियोवेज़ज़-एब्राम्स: डेबियन पर वे अलग-अलग प्रतीत होते हैं।
इमानुएल बर्ग

3
बाहर की जाँच: मैं थोड़ी देर के बारे में /etc/rc.localएक सवाल पूछा था ।
इमानुएल बर्ग

डुप्लिकेट की संभावित डुप्लिकेट क्या अंतर है /etc/rc.d/rc*.d और /etc/rc*.d
n611x007

जवाबों:


31

/etc/init.dSysvinit सामान के साथ पिछड़े संगतता के लिए ubuntu पर बनाए रखा है। यदि आप वास्तव में /etc/init.d/rc.localदेखेंगे (12.04 LTS सर्वर से भी)

#! /bin/sh
### BEGIN INIT INFORMATION
# Provides:          rc.local
# Required-Start:    $remote_fs $syslog $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO

और "रन /etc/rc.local" वास्तव में यह क्या करता है। की संपूर्णता /etc/rc.localहै:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

मुझे लगता है कि ऐसा करने में उद्देश्य के लिए एक साधारण मृत स्थान प्रदान करना है ताकि आप बिना स्टॉप से ​​निपटने के लिए बिना बूट कमांड चलाना चाहते हैं। स्टॉप के साथ सेवा शुरू कर सकते हैं, जो अंदर है /etc/init.d/rc.local

तो यह वास्तव में एक सेवा है, और इस तरह से चलाया जा सकता है। मैंने एक echoलाइन जोड़ी /etc/rc.localऔर:

»service rc.local start
hello world

हालाँकि, मैं नहीं मानता कि यह upstart's /etc/init(init.d!) निर्देशिका में किसी भी चीज़ से संदर्भित है :

»initctl start rc.local
initctl: Unknown job: rc.local

अपस्टार्ट में कुछ "आरसी" सेवाएं हैं:

»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting

लेकिन उन लोगों में से किसी को भी r.local के साथ कुछ भी नहीं लगता है।


5

यह एक वितरण विशिष्ट चीज का अधिक है। (जैसे, आपको CentOS में अलग-अलग r.local नहीं मिलेगा)।

अब आपके वास्तविक प्रश्न पर आते हुए, मुझे लगता है कि /etc/init.d/rc.local के अंदर कुछ भी जोड़ना "सेवा" के रूप में शुरू करना है, जबकि /etc/rc.local के अंदर कुछ भी बस बूट समय पर उस स्क्रिप्ट को लॉन्च करेगा।

मुझे वास्तव में इस बात पर यकीन नहीं है कि उबंटू अभी भी उन दोनों को क्यों बनाए रखता है? (शायद किसी और ने इस हिस्से पर कुछ प्रकाश डाला हो सकता है !!)


"कमांड के रूप में निष्पादित की जाने वाली कमांड" और एक कोड जो "बस बूट समय पर लॉन्च किया जाता है" के बीच अंतर क्या है? यह कुछ सुरक्षा है या क्या?
grigoryvp

दोनों के बीच मुख्य अंतर अनिवार्य रूप से एक सेवा और एक प्रक्रिया है। ;) मुझे लगता है कि मूल इरादा केवल सुरक्षा होगा। आपको यह लिंक दिलचस्प लग सकता है: unixmen.com/managing-your-services-and-processes-in-linux
pragmatic

यह गलत है! वे एक ही स्क्रिप्ट नहीं हैं, लेकिन वे कर रहे हैं - एक सेवा /etc/init.d/rc.localपर रोक शुरू सामान है /etc/rc.local(अधिक जानकारी के लिए मेरा उत्तर देखें)।
गोल्डीलॉक्स

@goldilocks: बहुत वर्णनात्मक और पूरी तरह से उत्तर के लिए धन्यवाद, लेकिन मैं स्पष्ट नहीं हूं कि मेरे उत्तर के किस हिस्से को आपने गलत कहा है? एक सेवा के रूप में कहने का मतलब है कि यह "प्रारंभ" और "स्टॉप" सामान कर सकता है, जबकि दूसरा केवल एक प्रक्रिया के रूप में। अगर मुझे कोई मतलब नहीं है तो कृपया मुझे सुधार दें।
व्यावहारिक

2
@pragmatic क्योंकि /etc/rc.localस्क्रिप्ट स्क्रिप्ट द्वारा संचालित निष्पादन योग्य प्रक्रिया है /etc/initd/rc.local, ठीक उसी तरह (जैसे) /bin/syslogद्वारा निष्पादित निष्पादन योग्य प्रक्रिया होगी /etc/initd/syslog। आप स्पष्ट रूप से कहते हैं कि /etc/rc.localसिर्फ एक बूट स्क्रिप्ट है, बनाम /etc/initd/rc.localएक पूरी तरह से अलग स्तर की सेवा है।
गोल्डीलॉक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.