- debian sid — не работает автозагрузка через /etc/rc.local
- unixforum.org
- [Решено]Не выполняется скрипт rc.local (странная ситуевина)
- [Решено]Не выполняется скрипт rc.local
- Re: [Решено]Не выполняется скрипт rc.local
- Re: [Решено]Не выполняется скрипт rc.local
- Re: [Решено]Не выполняется скрипт rc.local
- 🐧 Как включить shell скрипт rc.local в systemd при загрузке системы Linux
- Включение скрипта оболочки rc.local в systemd при загрузке системы Linux
- Выполнение скрипта оболочки rc.local во время загрузки с использованием systemd
- Настройка rc-local.service в Linux, когда systemd запускается
- Как посмотреть конфигурацию сервиса
- Информация об уровнях выполнения Linux
- Создать свой собственный сервис легко с systemd на Linux
- unixforum.org
- не стартует rc.local (проблема с запуском rc.local)
- не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Re: не стартует rc.local
- Почему команда в /etc/rc.local не выполняется во время запуска?
- 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 как симлинк на
но не тут то было
с .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
Настройка 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, чесслово не знаю не юзал.
Править стартовые скрипты в слаке можно, никаких проблем (при условии, что написать правильно) не будет. При апдейте рядом со старым скриптом появится новый, но с расширением .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 для запуска ваших команд при запуске:
- Создайте файл myscript.sh в каталоге /etc/init.d с заголовком: #!/bin/sh
- Добавьте ваши пользовательские команды в качестве содержимого
- Сделайте его исполняемым: sudo chmod +x /etc/init.d/myscript.sh
- Создайте символические ссылки для вашего сценария для различных уровней выполнения: sudo update-rc.d myscript.sh defaults
Также, Вы можете проверить /etc/network/if-up.d сценарии и посмотреть, сможете ли вы запускать команды при запуске сети.
Источник