Автор Тема: rc.local  (Прочетена 5714 пъти)

gvend

  • Напреднали
  • *****
  • Публикации: 128
    • Профил
rc.local
« Отговор #15 -: Feb 09, 2005, 20:34 »
Цитат
Искаш да кажеш, че не е толкова важно къде ще бъде скрипта, нито как ще се казва, а е по-важно къде и как ще бъде посочен в буут процеса ?
Най-просто казано. ако се придържаме към първоначалния ти въпрос rc.local=?, то отговорът е /etc/rcS.d.

Както вече каза някой преди мене, скриптовете които се намират в тази директория се изпълняват само веднъж при зареждане на системата, без значение в кой runlevel е тя (системата). Смяна на runlevel-а в движение не влияе на скрипта или процеса, който той е пуснал. Т.е. изпълнява се еднократно при включване и ако от там е стартиран някой процес, той се спира при изключване. Това е подходящо за "прости скриптове". Примерно echo "Добро Утро потребителю, не забравай да си сипеш кафе."
Ако обаче скрипта ти е някакъв демон (по-точно управлява/контролира изпълнението/състоянието на демона), rcS няма да има много смисъл. Защото този процесс най-вероятно не трябва да бъде винаги стартиран. Искам да кажа демона трябва да се пуска примерно само ако/когато системата е в runlevel 2,4,5 (избрах числата произволно, не искам да влагам друг смисъл в тях) а като е в runlevel 1 и 3 да се спира. Тогава се минава през /etc/init.d/ и после се разпределя по различните rc-та от 0 до 6 (не се копира ами се правят линкове към "истинския" скрипт). Такива скриптове обикнвено се изпълняват с някакъв аргумент: mydaemon start, mydaemon stop, mydaemon reload и т.н.
Имената на всички скриптове започват с S и число. числата определят реда на изпълнението на скриптовете в дадената директория. Така се контролира всичко.
Така че ако искаш само echo "Добро Утро потребителю, не забравай да си сипеш кафе." тогава rcS.d е това което търсиш. Влизаш в rcS.d и
ln -s /path/do/scripta S95myscript. Иначе init.d.
За повече информация тук
Активен

temsata

  • Напреднали
  • *****
  • Публикации: 21
    • Профил
rc.local
« Отговор #16 -: Feb 09, 2005, 23:06 »
Мерси gvend. Беше пределно изчерпателен за което ти благодаря.
Активен

Debian testing / KDE 3.4

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
rc.local
« Отговор #17 -: Feb 09, 2005, 23:35 »
Цитат (Topper @ Фев. 09 2005,20:01)
Май не четеш - задал съм му режим 755, което включва и +х.
А команда update-rc.d няма въобще в SuSE

Ами SuSE си има скриптове boot.local и halt.local в /etc/init.d/. Познай за какво са.
Активен

-------------------------------------------------------------------------
./debian/rules

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
rc.local
« Отговор #18 -: Feb 21, 2005, 21:01 »
Кратко, точно, ясно, без RTFM - благодаря !!!
Активен

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
rc.local
« Отговор #19 -: Feb 22, 2005, 10:26 »
Специално в SuSE според мен не е добра идея да се ползват boot.local и halt.local, защото те се изпълняват преди някой други процеси, примерно boot.local се изпълнява преди ifconfig
В директориите от rc0.d до rc6.d е отговора. В те зи директории има символни линкове към скриптове намиращи се в /etc/init.d
Та! ако искаш скрипт, който да се изпълнява след пълното зареждане на системата трябва да напишеш един скрипт и да го сложиш в /etc/init.d после, според зависи в кой runlevel искаш да ти се изпълнява скрипта влизаш в съответната директория. Примерно искаме в runlevel 5.Влизаме в /etc/init.d/rc5.d и правиме символен линк към желания от нас скрипт като даваме специално име на линка!
има 2 възможност
S скрипт или К скрипт
S скриптът се изпълнява след като системата е влязла в съответният runlevel, а К скриптът се изпълнява след излизане от runlevel-а
след буквата S или К слагаме двицифрен номер, който показва приоритета на изпълнения на скрипта съответно ако е с най-висок номер, скриптът ще се изпълни последен
всичко това можем да направим по следния начин:
Примерен код
mcedit /etc/init.d/local

пишеме каквото пишеме в този скрипт и го запазваме, след това го правиме изпълним
Примерен код
chmod +x /etc/init.d/local

след това влизаме в директорията на желания runlevel примерно rc5.d
и пишеме следното:
Примерен код
ln -s /etc/init.d/local S50local

и това е, при следващото стартиране на системата след влизането в runlevel 5 ще се изпълни скриптът /etc/init.d/local
предполагам че 50 ще е най-голямото число, така че скриптът ще се изпълни последен
Активен

Your Soul is Mine!

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Проблем с /rc.d/rc.local
Настройка на програми
empty 8 3115 Последна публикация May 27, 2005, 13:58
от Hapkoc
Rc.local pri debian?
Настройка на програми
to4o1 6 2648 Последна публикация Mar 25, 2007, 13:17
от neter
стартиране на скрипт в boot.local
Настройка на програми
kennedy 0 1432 Последна публикация Feb 20, 2008, 19:12
от kennedy
Rc.local в debian lenny
Настройка на програми
winman 15 6062 Последна публикация Apr 16, 2008, 18:13
от winman
Postfix only for local mails
Настройка на програми
d3v1ous 1 2864 Последна публикация Jun 10, 2008, 15:47
от Hapkoc