Английската версия на тази статия е от: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. За /etc/init.d Ако някога сте използвали Linux система, значи сте чували за директорията init.d. За какво точно служи този каталог? В крайна сметка това прави само едно нещо, но не е тривиално, прави се за цялата система, затова е много важно. Директорията init.d съдържа много стартови и спиращи скриптове за различни услуги на системата. Контролира всичко от acpid до x11-common. Разбира се, init.d далеч не е толкова просто. (Бележка на преводача: ACPID е нов стандарт за управление на енергията за Linux операционни системи; X11 се нарича още X прозоречна система, а X прозоречна система (X11 или X) е прозоречна система с растеров дисплей. Това е стандартен набор от инструменти и протокол за изграждане на графични потребителски интерфейси на Unix и Unix-подобни операционни системи, както и на OpenVMS, и може да се използва за почти всички съвременни операционни системи. Когато погледнете директорията /etc, ще откриете много директории под формата на rc#.d (където # представлява определено ниво на инициализация, диапазонът е 0~6). Под тези директории има много скриптове, които контролират процеса. Тези скрипти започват с "K" или с "S". Скриптовете, които започват с K, се изпълняват преди скриптовете, които започват със S. Къде са поставени тези скриптове ще определи кога ще започнат да работят. Между тези директории системните услуги работят заедно като здрава машина. Въпреки това, понякога искаш да започнеш или унищожиш процес чисто, без да използваш командите kill или killall. Тук /etc/init.d е много полезен! Ако използвате Fedora система, можете да намерите тази директория: /etc/rc.d/init.d. Всъщност прави едно и също, независимо къде поставиш init.d. За да можеш да използваш скриптове в init.d директорията, ти трябват root или sudo привилегии. Всеки скрипт ще се изпълнява като команда, структурирана приблизително по следния начин: /etc/init.d/command опция comand е действителната команда, която се изпълнява, а опциите могат да бъдат следните: Старт Стоп презареждане Рестарт Презареждане със сила В повечето случаи ще използвате опциите старт, стоп, рестарт. Например, ако искате да изключите мрежата, можете да използвате команда като тази:
/etc/init.d/networking stop Друг пример е, че променяш настройките на мрежата и трябва да рестартираш мрежата. Можете да използвате команди като тази: /etc/init.d/мрежов рестарт Често използваните скриптове за инициализация в директорията init.d са:
Мрежови връзки самба Apache2 ftpd Sshd Гълъбарник mysql Разбира се, може да имате и други, по-често използвани скриптове, в зависимост от инсталираната Linux операционна система. 2. За /etc/rc.local rc.local също е скрипт, който използвам често. Скриптът се изпълнява след като скриптът на ниво системна инициализация е изпълнен, така че е безопасно да добавиш скрипта, който искаш да изпълниш, след като системата се стартира. Често срещан случай е, че можеш да добавиш скрипт за NFS монтаж/монтаж към него. Можеш също да добавиш някои скриптни команди за дебъгване вътре. Например, срещал съм ситуация, при която самба услугата винаги не функционира правилно, а инспекцията показва, че самбата е трябвало да е стартирала и изпълнена по време на стартиране на системата, тоест конфигурацията на самба демон гарантира, че тази функция трябва да се изпълнява правилно. В този случай обикновено не си губя труда да търся защо, просто трябва да добавя този ред към /etc/rc.local скрипта: /etc/init.d/samba начало По този начин проблемът с изключението за SAMBA услуга беше успешно решен.
3. Резюме Linux е гъвкав. Поради своята гъвкавост, винаги можем да намерим много различни начини да решим един и същ проблем. Примерът със стартиране на системна услуга е добър пример. Със скрипта в директорията /etc/init.d, комбиниран с мощния инструмент /etc/rc.local, можете да сте сигурни, че услугата ви ще работи безупречно.
|