Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > запуск init-скрипта


Автор: kuvshinka 29.12.2009, 15:36
Подскажите пож-та как сделать так, чтобы обычный скрипт автоматически запускался при инициализации системы (т.е. загрузке операционки)? я кладу этот скрипт в папку /etc/rc.d/rc3.d и, для надежности, в  /etc/rc.d/rc4.d, но он все равно почему-то не запускается…

Автор: comcon1 29.12.2009, 15:47
права скрипта? зависимость от прочих?

и 
Код

ls /etc/rc3.d 

сюда запость.

Автор: ZeeLax 29.12.2009, 15:57
Цитата(comcon1 @  29.12.2009,  18:47 Найти цитируемый пост)
и @ls /etc/rc3.d@ сюда запость. 

Что за собаки?

Добавлено через 23 секунды
kuvshinka, ось какая?

Автор: kuvshinka 29.12.2009, 20:30
права скрипта я не меняла - с какими файл создался, такие и есть...скрипт независимый ни от кого...просто выполняет некое действие...и что значит "сюда запость"? скопировать в /etc/rc3.d? там скрипт уже лежит....
ось- линукс....

Автор: ZeeLax 29.12.2009, 20:32
kuvshinka, операционная система какая у вас?

Автор: Egik2 29.12.2009, 21:44
Просто из терминала под rootом не пробовала запускать?
Как нужно работает?

Автор: kuvshinka 29.12.2009, 22:30
из терминала скрипт конечно все верно отрабатывает....но хотелось бы внести его выполнение в загрузку ОС (линукс)....

Автор: Egik2 29.12.2009, 22:50
А можешь заменить текст скрипта, каким-нить безобидным, чтобы проследить в принципе,
запускается он или нет, например вставь вместо текста:
Код

#!/bin/bash
echo script running `date` >> /tmp/test.log;


Потом в файле test.log узнаем, запускался, ли он вообще

Автор: bilbobagginz 29.12.2009, 23:00
kuvshinka, в стандартных системах (системах, придерживающихся стандарта LSB), в каталоге /etc/init.d должен быть скрипт-скелетик,
на основе к-рого ты создашь свой скрипт. зовут его как ни странно /etc/init.d/skeleton

потом если бы мы знали на какой ты системе мы бы подсказали тебе дальше, т.к. и Кашпировский, и Чумак не посещают наш форум.


Автор: nickless 30.12.2009, 16:50
Суть вопроса более соответствует разделу "*NIX системы: Общие вопросы"

Модератор: Тема перенесена

Автор: kuvshinka 11.1.2010, 23:46
bilbobagginz : то есть мой скрипт вставить в файл /etc/init.d/skeleton (у меня есть такой файл)? или что тогда имелось ввиду под словами "...скрипт-скелетик, на основе к-рого ты создашь свой скрипт"

Автор: bilbobagginz 12.1.2010, 13:09
kuvshinka, скелетик - это как шаблон.
напр. ты хочешь создать сервис по имени "kuvservice"
заходишь в /etc/init.d, делаешь:
cp skeleton kuvservice
потом редактируешь файл. внутри него есть код bash, написанный довольно интуитивно - нужно знать такие данные как
  • зависимости этого сервиса от других сервисов
  • файл запуска сервиса
  • параметры передачи файла запуска
  • uid/gid сервиса, если он запускается не как root
  • файл/ы конфигурации
  • et cetera.
и заменить соответственные значения на правильные.
в Debian есть специальный дополнительный скрипт start-stop-daemon, ему можно передавать все эти параметры, и он умеет создавать pid file, lock file, run file, и т.д.

в результате редактирования получится файл:
/etc/init.d/kuvservice
который можно будет добавить в нужный runlevel и он корректно будет отрабатывать команды start stop restart и т.д.

P.S.:
тебя уже пару раз спрашивал какая система у тебя, но ты отвечаешь "многозначительно" Линукс.
То, что линукс, это и смайлику понятно. Из-за того, что ты так "шифруешься" сложно тебе помочь конкретнее.

Автор: kuvshinka 18.1.2010, 15:39
скрипт my_script:
Код

#!/bin/sh 
echo script running `date` >> /tmp/test.log;


под root-ом просто кидаю в папки /etc/rc.d/boot.d , /etc/rc.d/rc3.d, а также в /etc/init.d/boot.d и /etc/init.d/rc3.d......но он все равно не запускается при загруке ОС... в чем тут дело и как добиться такого эффекта ? куда же именно надо скопировать скрипт и, возможно, надо еще какие «настройки» делать (изменить права доступа и т.п.)?  

Автор: bilbobagginz 19.1.2010, 08:16
kuvshinka
перечитай еще раз все что я написал в этой ветке.
(и переставай баловаться наркотиками)


Автор: bilbobagginz 19.1.2010, 09:03
какая у тебя система ? (дистрибутив, версия) ?

Автор: kuvshinka 19.1.2010, 20:13
opensuse 10.3

Автор: bilbobagginz 19.1.2010, 22:59
1. если твой скрипт - запускает какого-то "демона", то он должен быть не "обычным", 
а специально сконструированным, как http://www.novell.com/coolsolutions/feature/15380.html.
там же описано как его установить "по-сусевски".

2. если твой скрипт - не запускает какого-то демона, а настраивает какие-то настройки, которые сбрасывать перед перезагрузкой не нужно,
то положи его куда хочешь, а запусти его внутри /etc/init.d/boot.local
но если тебе нужно твои команды запустить после каких-то определенных инитскриптов, и ДО других каких-то, рекомендуется всетаки отформатировать скрипт в стиле /etc/init.d, и установить его как указано в пункте 1.

a специальный скрипт-шаблон-скелетик в сусях, оказывается, называется /etc/rc.d/skeleton






Автор: ZeeLax 20.1.2010, 07:36
Цитата(kuvshinka @  18.1.2010,  18:39 Найти цитируемый пост)
под root-ом просто кидаю в папки /etc/rc.d/boot.d , /etc/rc.d/rc3.d, а также в /etc/init.d/boot.d и /etc/init.d/rc3.d......но он все равно не запускается при загруке ОС... в чем тут дело и как добиться такого эффекта ?

Зайди и посмотри, что за файлы есть в этих каталогах и их имена. Подсказка - имена не зря именно такие.

Автор: kuvshinka 20.1.2010, 20:26
в ссылке bilbobagginz-a - все по-английски....переводить долго...
ZeeLax: так скажите прямо как надо назвать свой скрипт...в указанных выше папках полно различных файлов...а имена их я сейчас не помню...надо смотреть...и почему нельзя прямо сказать как надо сделать (что, куда и как корректно скопировать)....

Автор: bilbobagginz 20.1.2010, 20:46
kuvshinka, желаю удачи, я пасс.


Автор: ZeeLax 22.1.2010, 07:56
kuvshinka, вы на форуме программистов, не забывайте. Это подразумевает, что навыки работы с документацией у вас имеются, и что вы можете хоть как-то читать её на английском языке. Ну а создание большого количества людей-инструментов, делающих "как сказали" - не наша цель.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)