Saya ingin menambahkan iptables
aturan permanen ke aturan baru saya VPS
, dan setelah pencarian google singkat saya terkejut bahwa ada dua tempat aturan ini dapat ditambahkan, yang sepertinya identik: /etc/rc.local
dan /etc/init.d/rc.local
. Mungkin ada yang tahu mengapa ada dua tempat untuk kode startup yang sederhana untuk ditempatkan? Apakah ini rasa khusus Linux (tetapi ubuntu memiliki keduanya!)? Atau salah satunya sudah usang?
configuration
startup
grigoryvp
sumber
sumber
/etc/rc.local
beberapa waktu lalu.Jawaban:
/etc/init.d
dikelola di ubuntu untuk kompatibilitas dengan hal-hal sysvinit. Jika Anda benar-benar melihat/etc/init.d/rc.local
Anda akan melihat (juga dari Server 12,04 LTS):Dan "Jalankan /etc/rc.local" persis seperti yang dilakukannya. Keseluruhannya
/etc/rc.local
adalah:Saya kira tujuan melakukan ini adalah untuk menyediakan tempat sederhana yang mati untuk meletakkan perintah shell yang ingin Anda jalankan saat boot, tanpa harus berurusan dengan stop | start service stuff, yang ada di
/etc/init.d/rc.local
.Jadi itu sebenarnya sebuah layanan, dan dapat dijalankan seperti itu. Saya menambahkan
echo
baris ke/etc/rc.local
dan:Namun, saya tidak percaya itu dirujuk oleh apa pun di
/etc/init
direktori pemula (bukan init.d!):Ada beberapa layanan "rc" di pemula:
Tapi sepertinya tidak ada yang berhubungan dengan rc.local.
sumber
Ini lebih merupakan hal khusus distribusi. (seperti, Anda tidak akan menemukan rc.local berbeda di CentOS).
Sekarang datang ke pertanyaan Anda yang sebenarnya, saya pikir menambahkan apa pun di dalam /etc/init.d/rc.local membuatnya untuk memulai sebagai "layanan" sedangkan, apa pun di dalam /etc/rc.local hanya akan meluncurkan skrip itu pada saat boot.
Saya tidak begitu yakin mengapa Ubuntu masih mempertahankan keduanya? (Mungkin orang lain mungkin menjelaskan bagian ini !!)
sumber
/etc/init.d/rc.local
apakah berhenti memulai hal-hal/etc/rc.local
(lihat jawaban saya untuk lebih jelasnya)./etc/rc.local
skrip adalah proses yang dapat dieksekusi diatur oleh/etc/initd/rc.local
skrip, sama seperti (misalnya)/bin/syslog
akan menjadi proses yang dapat dieksekusi diatur oleh/etc/initd/syslog
. Anda mengatakan secara eksplisit bahwa/etc/rc.local
itu hanya skrip boot, vs./etc/initd/rc.local
menjadi layanan run level yang sepenuhnya terpisah.