Linux rc local не работает

Содержание
  1. debian sid — не работает автозагрузка через /etc/rc.local
  2. unixforum.org
  3. [Решено]Не выполняется скрипт rc.local (странная ситуевина)
  4. [Решено]Не выполняется скрипт rc.local
  5. Re: [Решено]Не выполняется скрипт rc.local
  6. Re: [Решено]Не выполняется скрипт rc.local
  7. Re: [Решено]Не выполняется скрипт rc.local
  8. 🐧 Как включить shell скрипт rc.local в systemd при загрузке системы Linux
  9. Включение скрипта оболочки rc.local в systemd при загрузке системы Linux
  10. Выполнение скрипта оболочки rc.local во время загрузки с использованием systemd
  11. Настройка rc-local.service в Linux, когда systemd запускается
  12. Как посмотреть конфигурацию сервиса
  13. Информация об уровнях выполнения Linux
  14. Создать свой собственный сервис легко с systemd на Linux
  15. unixforum.org
  16. не стартует rc.local (проблема с запуском rc.local)
  17. не стартует rc.local
  18. Re: не стартует rc.local
  19. Re: не стартует rc.local
  20. Re: не стартует rc.local
  21. Re: не стартует rc.local
  22. Re: не стартует rc.local
  23. Re: не стартует rc.local
  24. Re: не стартует rc.local
  25. Re: не стартует rc.local
  26. Почему команда в /etc/rc.local не выполняется во время запуска?
  27. 8 ответов

debian sid — не работает автозагрузка через /etc/rc.local

для домашнего медиацентра на линуксе и с xbmc не хочу использовать никакие графические среды. Для этого установил nodm c помощью которого входу в систему под юзером и после чего стартуют иксы. Далее хочу наладить автозагрузку графических прогр — решил начать с простенькой команды — xload

Прописал в /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

но при перезапуске компа я не вижу среди процессов процесс xload (иксы запущены — вижу курсор)

если удаленно через ssh я запускаю

то xload грузится, но картинку я вижу на удаленном компе.

Подскажите, плиз, что не так и как настроить автозагрузку графических программ.

Еще настораживает, что я не могу переключаться на другие виртуальные консоли постоянно вижу крестик на 7 консоли (я предполагаю, что она — седьмая)

Кстати, как можно отслеживать в логах запускался ли /etc/rc2.d/S21rc.local при загрузке системы и что было результатом такого запуска ?

bootlogd не показал ничего интересного.

update-rc.d rc.local defaults

увы, не помогло — ничего не изменилось. После рестарта не вижу процесса xload

А с чего ты взял, что X запускается до выполнения rc.local?

А зачем подобное в /etc/rc.local пихать? O_o

если иксы запускаются после выполнения rc.local тогда понятно, что от незнания я не туда поместил.

xload — это только для тестов был — я его потом удалю. В автозагрузке должен быть xbmc.

Тогда посоветуйте куда надо прописать xload, а потом xbmc для автозапуска в debian

Наверное, напрашивается домашний каталог пользователя — но там несколько файлов есть, в инете встречаются много вариантов — посоветуйте как правильно

Да я дебиан ни разу и не видел 😀

.profile или .login, в зависимости от оболочки.

какой оболочки ? у меня только иксы и nodm — ничего больше нет

А, тогда в .xinitrc (в домашнем каталоге):

это тоже не помогло, но помогло прописывание запуска в

Чтобы не испытывать проблем с XDM и иже, сделай .xinitrc символической ссылкой на .xsession.

Стоп. А разве .xsessionrc, а не .xsession? O_o

/.xsessionrc я имел ввиду — на одном из форумов нашел совет.

После твоего поста переименовал его в

/.xsession , после чего создал

/.xinitrc как симлинк на

но не тут то было

Читайте также:  Windows с socket send

с .xinitsession иксы вываливаются без каких-либо аварийных сообщениях в логах

[ 83.033] (**) Option «config_info» «udev:/sys/devices/pci0000:00/0000:00:10.0/usb1/1-2/1-2:1.2/input/input2/event2»
[ 83.033] (II) XINPUT: Adding extended input device «Device USB Device» (type: KEYBOARD, id 11)
[ 83.033] (**) Option «xkb_rules» «evdev»
[ 83.033] (**) Option «xkb_model» «pc105»
[ 83.033] (**) Option «xkb_layout» «us,ru»
[ 83.033] (**) Option «xkb_variant» «,»
[ 83.033] (**) Option «xkb_options» «grp:lctrl_toggle,grp_led:scroll»
[ 83.034] (II) config/udev: Adding input device PC Speaker (/dev/input/event6)
[ 83.034] (II) No input driver specified, ignoring this device.
[ 83.034] (II) This device may have been added with another device file.
[ 83.183] (II) evdev: Device USB Device: Close
[ 83.183] (II) UnloadModule: «evdev»
[ 83.183] (II) evdev: Device USB Device: Close
[ 83.183] (II) UnloadModule: «evdev»
[ 83.183] (II) evdev: Device USB Device: Close
[ 83.183] (II) UnloadModule: «evdev»
[ 83.183] (II) evdev: Sleep Button: Close
[ 83.183] (II) UnloadModule: «evdev»
[ 83.183] (II) evdev: Power Button: Close
[ 83.183] (II) UnloadModule: «evdev»
[ 83.183] (II) evdev: Power Button: Close
[ 83.183] (II) UnloadModule: «evdev»
[ 83.702] (EE) Server terminated successfully (0). Closing log file.

Странно, у меня во FreeBSD всё работает. А X’ы они везде одинаковые.

Это не иксы вываливаются, это .xinitrc/.xsessionrc/.xsession завершается.

в том-то и дело, что если я использую для автозапуска .xsessionrc в котором прописана графическая программа, которая по каким-то причинам не запускается, то иксы после неудачного запуска проги остаются работать и .xsessionrc не завершается.

Стоит мне переименовать .xsessionrc в .xsession то после неудачного запуска программы, которая там прописана сеанс заканчивается и иксы завершают свою работу.

Остается понять — что правильно использовать для автозапуска в дебиане — .xsessionrc или .xsession

По-видимому, /etc/X11/Xsession параллельно с этим скриптом запускает сессию по умолчанию (twm?). А .xsession запускается вместо сессии. Вам, скорее всего, нужно второе.

Возможно, перед xbmc понадобится запустить какой-нибудь демон для автомонтирования втыкаемых в «телевизор» устройств, а для него понадобится dbus-launch.

а с .xinitrc — что посоветуете сделать — оставить

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

[Решено]Не выполняется скрипт rc.local (странная ситуевина)

[Решено]Не выполняется скрипт rc.local

Сообщение ZugDuk » 16.10.2008 14:54

В моей ксубунте, автоматически не стартует скрипт rc.local
Точнее стартовать пытается, но пишет ошибку.

Идет загрузка, запускаются различные сервисы, самым последним в очереди, перед самым логином, идет rc.local
Выглядит он так.

Re: [Решено]Не выполняется скрипт rc.local

Сообщение blackdevil » 16.10.2008 19:42

Права на файл смотрели?

Re: [Решено]Не выполняется скрипт rc.local

Сообщение ZugDuk » 17.10.2008 09:32

Смотрел.
На /etc/rc.local
owner — rwx
group — rx
other — rx

На /etc/init.d/rc.local
owner — rwx
group — rx
other — rx

Видимо дело не в этом

Re: [Решено]Не выполняется скрипт rc.local

Сообщение rm_ » 17.10.2008 10:27

Источник

🐧 Как включить shell скрипт rc.local в systemd при загрузке системы Linux

Включение скрипта оболочки rc.local в systemd при загрузке системы Linux

Совместимость с /etc/rc.local достигается через systemd с помощью специальной службы под названием rc-local.service.

Этот модуль автоматически вызывается в multi-user.target системой systemd-rc-local-generator, если /etc/rc.local является исполняемым.

Выполнение скрипта оболочки rc.local во время загрузки с использованием systemd

Естественно, создайте или обновите/отредактируйте файл с именем /etc/rc.local с помощью вашего любимого текстового редактора.

Я собираюсь использовать команду vim:

$ sudo vim /etc/rc.local
## RHEL/CentOS/Fedora Linux отредактируйте файл /etc/rc.d/rc.local ##
$ sudo vim /etc/rc.d/rc.local

Сохраните и закройте файл при использовании vim.

Убедитесь, что вы установили права на исполнение файла с помощью команды chmod:

$ sudo chmod -v +x /etc/rc.local

Читайте также:  Accessing smb from windows

Настройка rc-local.service в Linux, когда systemd запускается

Все, что нам нужно сделать, это ввести следующую команду systemctl:

$ sudo systemctl enable rc-local.service

Как посмотреть конфигурацию сервиса

Откройте приложение терминал и введите:

$ sudo systemctl cat rc-local.service

Примечание. Запустите sudo SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/system-generators/systemd-rc-local-generator для отладки проблем с /etc/rc.local, когда скрипт не загружается.

Информация об уровнях выполнения Linux

Когда по умолчанию использовался init, у нас были следующие уровни запуска:

  • S – загрузить систему Linux
  • 0 – выключить Linux
  • 6 – Перезагрузить Linux
  • 1 – Однопользовательский режим Linux, используемый для восстановления системы Linux в аварийном режиме
  • 2–5 – Обычная многопользовательская система, поддерживающая как CLI, так и GUI, а также полную сетевую связь

Застую дистрибутивы Linux и система Unix изменяли эти значения уровней выполнения в соответствии со своими потребностями.

Тем не менее, /etc/rc.local вызывается, когда система входит в многопользовательский режим через уровни запуска от 2 до 5.

Однако это значение по умолчанию было удалено, когда большая часть дистрибутивов Linux переключилась на systemd.

Поэтому я написал это краткое руководство для разработчиков Linux и системных администраторов.

Создать свой собственный сервис легко с systemd на Linux

Вместо скрипта оболочки в /etc/rc.d/ или вызова /etc/rc.local мы сделаем это по другому.

Он работает только в Linux, но не в других вариантах Unix. Тогда просто сделайте:

Например, вот как мы можем установить правила Wireguard или openvpn iptables:

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

не стартует rc.local (проблема с запуском rc.local)

не стартует rc.local

Сообщение Slack » 23.09.2008 05:44

Re: не стартует rc.local

Сообщение bormant » 23.09.2008 08:34

Для проверки старта можно в начало rc.local вставить
echo «$(date) Starting rc.local . » >> /var/log/debug
и залогинившись посмотреть в /var/log/debug на предмет наличия строки.
Может вполне оказаться, что хотя он и стартует, но запущенное из него умирает вместе с запустившим его процессом bash-а.

Покажи
# grep rc.local /etc/rc.d/rc.M
# ls -l /etc/rc.d/rc.local
# cat /etc/rc.d/rc.local

Re: не стартует rc.local

Сообщение Slack » 23.09.2008 09:47

Re: не стартует rc.local

Сообщение bormant » 23.09.2008 09:58

Re: не стартует rc.local

Сообщение Slack » 24.09.2008 03:15

Re: не стартует rc.local

Сообщение bormant » 24.09.2008 08:08

Re: не стартует rc.local

Сообщение BigKAA » 24.09.2008 15:40

Посмотреть файл /etc/rc.d/rc.4 (кажется так называется) и добавить запуск vnc.

Батенька да Вы костыли прикручиваете. Вообщето Слака BSD style system. То, что вы рекомендуете — это SystemV. Причем скрипты в этих директориях запускаются раньше, чем у него на 4 ранлевеле менеджер дисплеев стартанет.
Почему? Ответ простой — скрипт эмулирующий систему инициализации SV запускается гораздо раньше (кажись в файле /etc/rc.d/rc.S), чем файл запускающий манагер дисплеев.

Жаль сейчас под рукой слаки нет, написал бы более точно, что когда и почему стартует.

А вообще, совет — посмотрите файл /etc/inittab на предмет какие файлы в каком порядке на 4-м ранлевеле запускаются. Там в самом конце файл, который придется поправить для запуска vnc.

Re: не стартует rc.local

Сообщение bormant » 24.09.2008 16:18

Re: не стартует rc.local

Сообщение BigKAA » 24.09.2008 17:14

Ну можно запустить перед exec скриптик, в котором сделать sleep на некоторое время. Или он будет контролировать, запустиласт и программулина, и если запустилась, запускать vnc.
Или прописать запуск этого скрипта прямо в /etc/inittab — вообще шикарный выход.
Второй вариант, посмотреть файлы связанные с манагером дисплеев и как то это дело впихнуть туда. Тут не готов сразу давать совет куда и что конкретно надо вспоминать. Для начала попробовать поиграться с xdm — /etc/X11/xdm, если поможет, то перенести это в kdm, у него такие же конфигурационные файлы, но в другой директории. Что делать с gdm, чесслово не знаю не юзал.

Читайте также:  Chuwi hi10 не загружается windows

Править стартовые скрипты в слаке можно, никаких проблем (при условии, что написать правильно) не будет. При апдейте рядом со старым скриптом появится новый, но с расширением .new.

P/S/ Почитал, еще раз подумал, все же скрипт в /etc/inittab лучшее решение этой проблемы.

Источник

Почему команда в /etc/rc.local не выполняется во время запуска?

У меня есть одна команда в моем скрипте /etc/rc.local , которая должна запускать демон обновления для Tiny Tiny RSS во время запуска, но сценарий не выполняется во время запуска. Почему?

Весь файл /etc/rc.local:

/etc/rc.local является исполняемым:

/etc/init.d/rc.local существует и является исполняемым:

/etc/init.d/rc.local должен выполняться при запуске для этого уровня запуска:

Если я вручную вызываю /etc/rc.local из командной строки, загружается update_daemon. ..

. что я должен помнить каждый раз, когда мой сервер перезагружается, пока эта проблема не будет устранена.

Подобные вопросы уже уже существуют, но до сих пор я не смог применить информацию в рамках моей конкретной проблемы.

Почему команда в rc.local не выполняется во время запуска?

8 ответов

Необходимо убедиться, что /etc/rc.local выполняется во время запуска сервера с помощью команды:

sudo systemctl enable rc-local.service

Я однажды отредактировал rc.local с помощью Блокнота в Windows, и у него появилась эта проблема.

В этом случае использование текстового редактора с поддержкой преобразования EOL, например Notepad ++, для преобразования стиля EOL в «Unix» может решить эту проблему.

Вы также можете сделать это с помощью :set ff=unix в Vim.

У меня была похожая проблема в том, что rc.local не запускался при запуске.

sshades предоставил мне следующий ответ:

Ubuntu сейчас использует systemd, а rc.local теперь считается службой, которая по умолчанию отключена. Вы можете включить rc.local, введя следующую команду и перезагрузившись:

, хотя я не проверял его решение, я думаю, что это звучит логично и будет работать. Тем не менее:

Я также нашел решение, что добавление скрипта в ./.config/autostart-scripts/ сделает свое дело

У нас была эта проблема на некоторых хост-серверах, загружающих правила FW.

На этих полях они ОЧЕНЬ быстро перезагружаются, и мы обнаружили, что просто поместили «sleep 1» в rc.local до того, как операторы загрузки, похоже, решат проблему. Я думаю, что это дало немного времени для настройки интерфейсов перед загрузкой правил FW.

Убедитесь, что скрипт rc.local является исполняемым:

Затем включите его:

Перезагрузите систему или запустите скрипт вручную, выполнив:

Статус услуги можно отобразить, запустив:

Сценарий rc.local завершается, если при выполнении какой-либо из его команд возникает какая-либо ошибка (упомяните флаг -e в #!/bin/sh -e ).

Возможно, что некоторые условия не выполняются, когда вы пытаетесь выполнить ваши команды, когда происходит rc.local выполнение, поэтому выполнение вашей команды завершается неудачей.

Я столкнулся с тем же самым, когда вручную настраивал процессор и не делал этого в rc.local . Вот мой пользовательский обходной путь, который использует update-rc.d для запуска ваших команд при запуске:

  1. Создайте файл myscript.sh в каталоге /etc/init.d с заголовком: #!/bin/sh
  2. Добавьте ваши пользовательские команды в качестве содержимого
  3. Сделайте его исполняемым: sudo chmod +x /etc/init.d/myscript.sh
  4. Создайте символические ссылки для вашего сценария для различных уровней выполнения: sudo update-rc.d myscript.sh defaults

Также, Вы можете проверить /etc/network/if-up.d сценарии и посмотреть, сможете ли вы запускать команды при запуске сети.

Источник

Оцените статью