Pertama, klarifikasi adalah dalam urutan:
- init.d adalah direktori yang menyimpan skrip kontrol layanan, yang mengontrol awal dan penghentian layanan seperti
httpd
ataucron
- rc.local adalah layanan yang memungkinkan menjalankan skrip sewenang-wenang sebagai bagian dari proses startup sistem
Dalam hal apakah lebih baik menggunakan rc.local
atau cron
menjalankan skrip Anda, saya menduga itu lebih merupakan masalah estetika daripada kepraktisan. cron
, sebagai penjadwal tugas, dimaksudkan sebagai metode untuk melakukan perawatan atau pemeliharaan mesin, seperti memeriksa pembaruan, membersihkan cache, atau melakukan audit keamanan. Ini tidak berarti bahwa itu terbatas untuk melakukan fungsi-fungsi itu, karena dapat menjalankan skrip atau perintah yang diinginkan pada waktu yang ditentukan (seperti @reboot
).
Penggunaan rc.local
, di sisi lain, akan jatuh lebih dalam jenis konfigurasi sistem tugas, karena rc.local
, dieksekusi oleh sistem init mesin, biasanya bertanggung jawab untuk mengatur konfigurasi jaringan mesin, layanan atau lingkungan (tetapi sekali lagi, tidak terbatas hanya pada tugas ini).
Kedua poin ini, bagaimanapun, harus marah dengan fakta bahwa tidak semua sistem init menawarkan rc.local
mekanisme, dan tidak semua daemon cron menawarkan @reboot
tag psuedo.
Poin Bonus
Seperti disebutkan, init.d
adalah direktori yang berisi skrip yang mengontrol layanan yang dapat dimulai atau dihentikan pada sistem Anda (setidaknya pada mesin yang menggunakan SysV
tipe init system). Bergantung pada sistem init Anda dan tujuan skrip Anda, mungkin masuk akal untuk mengubah skrip Anda menjadi skrip init untuk dijalankan dengan cara yang sama seperti layanan. Ini, bagaimanapun, sangat tergantung pada sistem init Anda karena kerangka di sekitar bagaimana file ini dibangun dapat sangat berbeda.
Kata terakhir
Perlu juga dicatat bahwa biasanya skrip bash diakhiri dengan akhiran .sh
bukan .txt
, karena ini langsung menunjukkan file adalah skrip shell, bukan file teks. Yang sedang berkata, asalkan itu memiliki shebang ( #!/bin/bash
) di bagian atas file, atau disebut sebagai bash /path/to/script.whatever
, seharusnya tidak masalah dalam hal mengeksekusi skrip.