Запознайте се с Linux: Директорията /etc/init.d

Опитайте Нашия Инструмент За Премахване На Проблемите

Ако използвате Linux, най-вероятно сте чували за init.d директория. Но какво точно прави тази директория? В крайна сметка прави едно нещо, но прави това едно нещо за цялата ви система, така че init.d много е важно. Най- init.d директория съдържа множество скриптове за старт / стоп за различни услуги на вашата система. Всичко от acpid да се x11-чести се контролира от тази директория. Разбира се, не е точно толкова просто.

Ако погледнете / и т.н. директория ще намерите директории, които са във формата RC # .d (Където # е число, отразява конкретно ниво на инициализация - от 0 до 6). Във всяка от тези директории има редица други скриптове, които контролират процесите. Тези скриптове или ще започват с „K“ или „S“. Всички „K“ скриптове се изпълняват преди „S“ скриптове. И в зависимост от това къде се намират скриптите ще определят кога инициират скриптове. Между директории системните услуги работят заедно като добре смазана машина. Но има моменти, когато трябва да стартирате или спрете процес чисто и без да използвате командите kill или killall. Това е мястото, където /etc/init.d директория е удобна.

Сега, ако използвате дистрибуция като Fedora, може да намерите тази директория в /etc/rc.d/init.d , Независимо от местоположението, той служи на същата цел.

За да контролирате някой от скриптите в init.d ръчно трябва да имате root (или sudo) достъп. Всеки скрипт ще се изпълнява като команда и структурата на командата ще изглежда като:

/etc/init.d/command ОПЦИЯ

Където команда е действителната команда за изпълнение и ОПЦИЯ може да бъде едно от следните:

  • начало
  • Спри се
  • презареждане
  • рестартирам
  • сила презареждане

Най-често ще използвате едното старт, стоп, или рестартирам. Така че, ако искате да спрете вашата мрежа, можете да издадете командата:

/etc/init.d/ мрежа за спиране

Или ако направите промяна в мрежата си и трябва да я рестартирате, можете да направите това със следната команда:

/etc/init.d/networking рестартиране

Някои от по-често срещаните скриптове на init в тази директория са:

  • мрежи
  • самба
  • apache2
  • FTPD
  • SSHD
  • гълъбарник
  • MySQL

Разбира се, че във вашата директория може да има по-често използвани скриптове - зависи от това какво сте инсталирали. Горният списък е взет от инсталация на Ubuntu Server 8.10, така че стандартната инсталация на десктоп ще има няколко по-малко скриптове от мрежов тип.

Но какво да кажем за /etc/rc.local

Има трети вариант, който доста често използвах. Тази опция е /etc/rc.local скрипт. Този файл се стартира, след като всички други скриптове на ниво init са стартирани, така че е безопасно да поставите различни команди, които искате да сте издали при стартиране. Много пъти ще поставя инструкции за монтаж за неща като nfs в този скрипт. Това също е добро място за поставяне на скриптове за „отстраняване на неизправности“. Например, след като имах машина, която по някаква причина сякаш самба не искаше да стартира. Дори афер проверка, за да се уверите, че демонът Samba е настроен да се инициализира при зареждане. Така че вместо да прекарвам цялото си време напред с това, просто поставих линията:

/etc/init.d/samba start

в /etc/rc.local сценарий и Самба работеше като чар. В крайна сметка щях да се върна и да затрудня проблемите си.

Заключителни мисли

Linux е гъвкав. Linux е толкова гъвкав, че има почти неизбежно множество начини за решаване на един проблем. Стартирането на системна услуга е един такъв проблем. С помощта на /etc/init.d система (както и /etc/rc.local ) можете да бъдете сигурни, че услугата ще започне.