Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогите с автозапуском скрипта  (Прочитано 3864 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн g_ladak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Помогите пожалуйста с автозапуском скрипта.
Ubuntu 9.04
пользователь root
Есть скрипт который в терминале запускается так: sh script.sh start
и все работает, но хочу сделать автозапуск этого скрипта.
Пробовал создать скрипт auto.sh в Init.d , в скрипте пишу:
#!/bin/bash
cd ~
cd /usr/local/bin/
sh script.sh start

после этого в терминале набираю:
sudo chmod +x /etc/init.d/auto.sh
sudo update-rc.d auto.sh defaults 95

результат отсутствует. Может я что то не понимаю, но почему скрипт в терминале запускается только если перед ним пишу sh?
Помогите пожалуйста.

Оффлайн [DarkNet]Alpha

  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Re: Помогите с автозапуском скрипта
« Ответ #1 : 01 Июня 2010, 13:02:02 »
Допиши команду запуска скрипта в /etc/rc.local (перед exit 0), и будет тебе счастье.
И ещё. Ты дал своему скрипту права на исполнение?
И ещё. Без пути скрипт запускается из папок /usr/bin, /usr/local/bin и /home/user/bin (последнюю надо создать и перезагрузить компьютер).
« Последнее редактирование: 01 Июня 2010, 13:06:15 от DarknetAlpha »

Оффлайн g_ladak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Помогите с автозапуском скрипта
« Ответ #2 : 01 Июня 2010, 14:29:26 »
Не получается.
Вписал в rc.local следующее:
/usr/local/bin/new
/usr/local/cp/sh cp.sh start

так new (это программа) запускается, а cp.sh (это скрипт) нет.
Подскажите зачем перед скриптом нужно писать sh?
« Последнее редактирование: 01 Июня 2010, 14:31:15 от g_ladak »

Оффлайн absemetov

  • Активист
  • *
  • Сообщений: 401
  • LMDE 2011 01
    • Просмотр профиля
    • absemetov.org.ua
Re: Помогите с автозапуском скрипта
« Ответ #3 : 01 Июня 2010, 14:32:20 »
Команда sh

Вы всегда можете запустить новый экземпляр оболочки bash, дав команду bash или sh. При этом можно заставить новый экземпляр оболочки выполнить какой-то скрипт, если передать имя скрипта в виде аргумента команды bash. Так, для выполнения скрипта myscript надо дать команду "sh myscript".

Если вы заглянете в какой-нибудь файл, задающий скрипт (таких файлов в системе очень много), вы увидите, что первая строка в нем имеет вид: #!/bin/sh. Это означает, что когда мы запускаем скрипт на выполнение как обычную команду, /bin/sh будет выполнять ее для нас. Можно заменить эту строку ссылкой на любую программу, которая будет читать файл и исполнять соответствующие команды. Например, скрипты на языке Perl начинаются со строки вида #!/bin/perl.

Оффлайн cergei1982

  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: Помогите с автозапуском скрипта
« Ответ #4 : 01 Июня 2010, 14:37:39 »
А если rc.local вообще не запускается при старте системы?
Глаза боятся,а руки делают.

Оффлайн [DarkNet]Alpha

  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Re: Помогите с автозапуском скрипта
« Ответ #5 : 01 Июня 2010, 14:43:36 »
Ты скопировал скрипты в /usr/local/bin? Дал права на исполнение? Тогда можно вызывать их одним названием. То есть, cp.sh start . Только такой вопрос: ты действительно забросил скрипт в /usr/local/cp/ ?

Оффлайн r.o.m.a.N

  • Активист
  • *
  • Сообщений: 757
  • Debian Testing | KDE
    • Просмотр профиля
Re: Помогите с автозапуском скрипта
« Ответ #6 : 01 Июня 2010, 14:58:20 »
/usr/local/bin/new &
/usr/local/cp/sh cp.sh start

так попробуй

Оффлайн g_ladak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Помогите с автозапуском скрипта
« Ответ #7 : 01 Июня 2010, 15:46:49 »
Спасибо за Ваше внимание, но пока без результатно.
Если в rc.local вписать
/usr/local/bin/new
/usr/local/cp/sh cp.sh start ,
то запускается только new, а если
/usr/local/bin/new &
/usr/local/cp/sh cp.sh start , то не запускается ни чего.
Я не имею большого опыта, но я не пойму почему скрипт не запускается из терминала просто указав его имя, а запускается только если перед ним пишешь sh.
В свое время я писал маленькие скрипты для роутера asus, так там просто создаешь скрипты, потом указываешь в одном скрипте в каком порядке их грузить без всяких sh, почему на ubuntu не так не пойму.
Как запустить скрипт без sh?

Оффлайн kost2000

  • Участник
  • *
  • Сообщений: 179
    • Просмотр профиля
Re: Помогите с автозапуском скрипта
« Ответ #8 : 01 Июня 2010, 16:04:36 »
а в катологах /etc/rc{runlevel}.d вообще появились линки на скрипт?

можно глянуть
ls -l /etc/rc?.d/ | grep auto ?

Оффлайн Nestor

  • Активист
  • *
  • Сообщений: 347
    • Просмотр профиля
Re: Помогите с автозапуском скрипта
« Ответ #9 : 01 Июня 2010, 17:37:50 »

Не получается.
Вписал в rc.local следующее:
/usr/local/bin/new
/usr/local/cp/sh cp.sh start

так new (это программа) запускается, а cp.sh (это скрипт) нет.
Подскажите зачем перед скриптом нужно писать sh?


/usr/local/cp/sh cp.sh start - читается как файл  start  и  файл  cp.sh  в папке sh,  которая находится в папке  /usr/local/cp
видимо ты хотел нечто другого, если cp.sh скрипт т.е. содержимое файла начинается со строки  #!/bin/bash и далее по тексту, то первое, его надо сделать исполняемым
sudo chmod +rx cp.sh  # выдача прав на исполнение любому пользователю в системе ,  второе - поместить  этот файл в каталог  /usr/local/bin  и третье отредактировать файл
/etc/rc.local ,  т.е. перед перед exit 0 вписать название файла "cp.sh" (без ковычек есс но)
Команда  start здесь вообще не применяется



« Последнее редактирование: 01 Июня 2010, 17:41:57 от Nestor »


If you have paranoia, it doesn't mean that they do not hunt for you

 

Страница сгенерирована за 0.092 секунд. Запросов: 23.