Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: temsata в Feb 08, 2005, 23:45



Титла: rc.local
Публикувано от: temsata в Feb 08, 2005, 23:45
Здравейте,
Имам един макар и малко елементарен въпрос. Къде е мястото на скрипта rc.local в Debian SARGE. Знам че по принцип мястото му е в /etc/rc.d/  обаче такава дирактория в случая няма и съм малко озадачен къде трябва да се постави този скрипт.


Титла: rc.local
Публикувано от: 57r1k3 в Feb 09, 2005, 08:41
Здравей!
Мястото му е в /etc директорията. Той ще се изпълни след всички инициализиращи скриптове.

На този въпрос можеш много лесно да намериш отговор в гугъл. Ако все още не си разбрал, трябва да се научиш да четеш и да намираш необходимата ти информация.

Успех!


Титла: rc.local
Публикувано от: в Feb 09, 2005, 10:07
Zdravei :)

Ne sym mnogo dobre s Debian, no tam mai ne e taka ...

Pravish si skripta i go slagash v /etc/init.d/

posle puskash:
 update-rc.d scripta defaults
zada ti napravi linkove na skripta v /etc/rcX.d papkite


Титла: rc.local
Публикувано от: temsata в Feb 09, 2005, 11:09
Debian does not use a BSD-style rc.local directory.
=======================================
Ключа от палатката :)


Титла: rc.local
Публикувано от: Topper в Feb 09, 2005, 11:24
А къде е мястото на rc.local в SuSE ?
Т.е. по-правилно е да питам - къде се слагат стартъп скриптовете в SuSE ?


Титла: rc.local
Публикувано от: в Feb 09, 2005, 11:46
Никой не те спира да си наименуваш файла както искаш, ако не са те изпреварили ...
питаш за скрипт, а ключа ти е папка ...  :angry:
Какво всъщност искаш?
 :)


Титла: rc.local
Публикувано от: philip в Feb 09, 2005, 13:34
Цитат (temsata @ Фев. 09 2005,11:09)
Debian does not use a BSD-style rc.local directory.
=======================================
Ключа от палатката :)

if u wish a bsd style then use slackware


Титла: rc.local
Публикувано от: Topper в Feb 09, 2005, 13:59
Цитат (Guest @ Фев. 09 2005,12:46)
Никой не те спира да си наименуваш файла както искаш, ако не са те изпреварили ...
питаш за скрипт, а ключа ти е папка ...  :angry:
Какво всъщност искаш?
 :)

И аз съм стигнал до този извод и съм копирал скрипта, който искам да ми се стартира в папка /etc/init.d
Но това не води автоматично до стартирането му ?
Дори и chmod 755 му зададох - никакъв резултат.
Дай съвет ?


Титла: rc.local
Публикувано от: ktodorov в Feb 09, 2005, 14:13
Прамиш го chmod +x
и после командата
 update-rc.d /etc/init.d/rc.local defaults
таз команда слага линкове към rc-to  в папки /etc/rc0.d; /etc/rc1.d  ...
и после махаш тез дет не ти трябват.
Маи ти трябва само в /etc/rc3.d  ама туи само спецовете го знаят, ама си траят, че такива като нас да се мъчат  :)


Титла: rc.local
Публикувано от: Topper в Feb 09, 2005, 17:01
Май не четеш - задал съм му режим 755, което включва и +х.
А команда update-rc.d няма въобще в SuSE


Титла: rc.local
Публикувано от: temsata в Feb 09, 2005, 17:36
Debian does not use a BSD-style rc.local directory.

Това пичове е цитат и не ъм го измислил аз. Освен това като знаете толкова защо не ми казахте как е положението още в началото. Не искам да прозвучи грубо, но едно е да се правиш на отворен друго е да дадеш един отговор както трабва.
Последния отговор на ktodorov е поне малка съпка в тази насока. RESPECT.


Титла: rc.local
Публикувано от: rpetrov в Feb 09, 2005, 19:00
Идеята на rc.local скрипта, е да се стартира еднократно при инициализация на системата.

Винаги може да конфигурираш една система да ти стартира определен скрипт !

Така, че debian гурутата, просто трябва да намерят подходяща конфигурация/промяна/модификация за твоята система.


Титла: rc.local
Публикувано от: в Feb 09, 2005, 19:33
Човека пита за SuSe ако не се лъжа. Там си има един инструмент - казва се YaST. Стартира се от конзолата с yast. Там имаш System->Runlevel Editor - прегледай го правено е като за олигофрени. инче ако променяш ръчно нещата не забрвяй да пуснеш после SuSEconfig за да си упдатне нещата. Това е. Успех


Титла: rc.local
Публикувано от: ktodorov в Feb 09, 2005, 19:36
Май човека питаше за "Къде е мястото на скрипта rc.local в Debian SARGE."  Що за SUSE не се отвори друга тема  :p

Иска помощ, а му пълнят темата с ...  ???
Трудно е ... а така още повече ... не всеки има възможност да изчете всичко за всичко  ;)

Няколко конкретни отговора можеби биха били достатъчни.

Но нали е форум ...     :D


Титла: rc.local
Публикувано от: temsata в Feb 09, 2005, 19:40
Цитат (rpetrov @ Фев. 09 2005,20:00)
Идеята на rc.local скрипта, е да се стартира еднократно при инициализация на системата.

Винаги може да конфигурираш една система да ти стартира определен скрипт !

Така, че debian гурутата, просто трябва да намерят подходяща конфигурация/промяна/модификация за твоята система.

Искаш да кажеш, че не е толкова важно къде ще бъде скрипта, нито как ще се казва, а е по-важно къде и как ще бъде посочен в буут процеса ?


Титла: rc.local
Публикувано от: gvend в 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.
За повече информация тук


Титла: rc.local
Публикувано от: temsata в Feb 09, 2005, 23:06
Мерси gvend. Беше пределно изчерпателен за което ти благодаря.


Титла: rc.local
Публикувано от: n_antonov в Feb 09, 2005, 23:35
Цитат (Topper @ Фев. 09 2005,20:01)
Май не четеш - задал съм му режим 755, което включва и +х.
А команда update-rc.d няма въобще в SuSE

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


Титла: rc.local
Публикувано от: Topper в Feb 21, 2005, 21:01
Кратко, точно, ясно, без RTFM - благодаря !!!


Титла: rc.local
Публикувано от: Soulstealer в 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 ще е най-голямото число, така че скриптът ще се изпълни последен