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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как правильно запустить скрипт при загрузке системы?  (Прочитано 1565 раз)

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

Оффлайн useruser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
ОС Ubuntu 12.04.5.
Из системного ПО установлено
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386
Скрипт, который нужно запустить root/run_server.sh.
Как правильно запустить скрипт при загрузке системы?


PS
Если интересно, как я это делаю.
Но я не уверен, что делаю это правильно. И при таком запуске возникают проблемы - сервер падает.
Но это к теме не относится.
Сначала надо понять - как правильно запустить скрипт при загрузке системы.
Мой способ:
(Нажмите, чтобы показать/скрыть)





« Последнее редактирование: 10 Май 2016, 12:19:33 от useruser »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
  • Падение никак не соотносится с автостартом
  • Почему не подошел стандартные «Приложения запускаемые при старте системы»?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3095
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля

Я стестняюсь спросить:
1) Чем не подошел стандартный автозапуск? Хотя ладно, вопрос уже задавали
2) Для чего такие WorkAround ? Что мешало добавить запуск сервера сразу в /etc/init.d/ ?
3) sudo /root/run_server.sh . Как бы скрипт и так под рутом запускается. хватило бы /root/run_server.sh
Ну и по ресурсам и падениям - тут автозапуск не виноват
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн useruser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
1) Стандартный автозапуск не подошел в силу незнания или в силу отсутствия графической оболочки. Графическая оболочка ради одной задачи мне не нужна. Ресурсы важнее.
Собственно вопрос и был -  Как правильно...

2)Запускаю скрипт из скрипта, потому что не могу/не знаю, как указать в автозапуске конечный скрипт - который не находится в папке  /etc/init.d/.
Система говорит - я запущу только то, что в папке /etc/init.d/.
Конечный скрипт не могу поместить в папку /etc/init.d/ т.к. он запускает тучу всего, которое должно лежать в определённом месте. Исправить пути в конечном скрипте не могу.

3) Без судо не вроде работало. Вроде... Много проверял, может и заработает без судо...



Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Старый метод: Дописать команду запуска в /etc/rc.local
Правильный метод: Написать правильный инит-скрипт (естественно разместив его в /etc/init.d/). Примеры написания в самом каталоге.
Что касается путей — использовать переход в нужный каталог или полные пути.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн useruser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Про /etc/rc.local читал, но только сейчас - до экспериментов. Попробую.
Правильный метод....- кроме судо в моём скрипте есть ошибки?
Так правильно?
#!/bin/sh -e
root/run_server.sh
exit 0

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Правильный метод....- кроме судо в моём скрипте есть ошибки?
Правильный метод: Написать правильный инит-скрипт … Примеры написания в самом каталоге.
Как ещё Вам ответить?less /etc/init.d/README
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн useruser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
В файле README нет примеров написания скриптов. Есть общие рекомендации.
Пример файла для Дебиана
(Нажмите, чтобы показать/скрыть)
Мой скрипт
#!/bin/sh -e
root/run_server.sh
exit 0
Мой скрипт корректен?

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Мой скрипт корректен?
Встречный вопрос: Вы читать умеете?
Код: Bash
  1. man invoke-rc.d
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн useruser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Вы конечно СуперМодератор /далее по тексту/, но вопрос - Вы читать умеете?, ну не красиво.
Вопрос не требующий ответа... Я не обиделся, просто в научной среде говорят чётко, ясно и по делу.
И ладно было смотришь в книгу видишь фигу. Нет. Аргументации нет.

Текст файла Readme я вам привёл. Там только общие рекомендации. Вы сказали смотри - я не ленивый, посмотрел, осмыслил.
Там нет примеров. Физически нет.

invoke-rc.d к скрипту не относится. К коду скрипта.

Я вас спросил  "мой скрипт корректен?" - вы снова уходите от темы.
Честно, даже компилятор выдает более четкий ответ - приблизительный тип ошибки, строку и даже что там ожидается.

Как я понял, вы посылаете читать меня мануалы. Вопрос - а зачем тогда форум?
Нет, правда - если есть мануалы, где всё написано - то зачем форум?
В не ту ветку написал? Для новичков. Наглею может? Прошу написать за меня скрипты, код и вообще бесплатно выполнить работу? Вроде нет. Хотя я таким людям пишу скрипты. Бесплатно. Принципиально. Хотят - получите. И пусть они ничего не понимают, всё равно пишу.

Вот честно, не знаю зачем вы так делаете. Тратите и своё и моё время.
Думаю, что тему можно закрывать вследствии недопонимания. Ну не получил точный ответ, не обижусь.
Спрошу ещё где нибудь, научусь, куплю ответ ) За знания надо платить.

Смех продлевает жизнь
Американский форум. Задаёшь вопрос, потом тебе отвечают.
Израильский форум. Задаёшь вопрос, потом тебе задают вопрос.
Русский форум. Задаёшь вопрос, потом тебе долго рассказывают,
какой ты дурак.


Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3538
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
    • LinkedIn
useruser, правильно или неправильно - особой разницы нет. Работает и ладно. Всё равно в новых версиях всё переделывать под systemd, а всякие rc.local, init.d уже неактуальны.
Не опускай рук, а то пропустишь в бороду

Онлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 4314
  • Все по палатам!
    • Просмотр профиля
Смех продлевает жизнь
Уверен?
В давние времена ubuntu 7.10 нужно было запускать сервер. Взял за аналог скрипт другого сервера и наваял (не обращаясь на форум)
(Нажмите, чтобы показать/скрыть)
Может что и устарело, но работает до сих пор.
Извините, я все еще учусь

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3095
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля

Я вас спросил  "мой скрипт корректен?" - вы снова уходите от темы.


Нет, не корректен.
Такой формат записи корректен для /etc/rc.local (там ваш запуск нужно было вписать перед командой exit). Формат же записи для init.d

http://help.ubuntu.ru/wiki/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0_%D0%B0%D0%B2%D1%82%D0%BE%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Ну поскольку камень в мой огород…
Some more detailed information can also be found in the files in the
/usr/share/doc/sysv-rc directory.
Смотрели? Читали?
* /etc/init.d/*.sh scripts must conform to the rules for sh scripts as
  spelled out in the Debian policy section entitled "Scripts" (§10.4).
  The Debian Policy Manual is available at: http://www.debian.org/doc/debian-policy/#contents
Соответствует указанным правилам?
All init.d scripts are expected to have a LSB style header documenting
dependencies and default runlevel settings.  The header look
(Нажмите, чтобы показать/скрыть)
Имеет аналогичный заголовок?
# Provides:          skeleton
Открыли /etc/init.d/skeleton, посмотрели образец?
Может теперь сами ответите на свой вопрос?
Мой скрипт корректен?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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