сценарии в rc.local блоке, запускающем систему

Встреченный странная проблема, сегодня я просто обновил Ubuntu от 17,04 до 17,10, и перезагрузите систему. Однако мой компьютер не может войти в рабочий стол, кажется что заблокированным моим сценарием в /etc/rc.local. Сценарии как это:

sslocal -c /home/kinka/azure.conf

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

sslocal -c /home/kinka/azure.conf &

Я не знаю то, что приводит к такому изменению?

0
задан 21 October 2017 в 09:50

1 ответ

Главная причина состоит в том, потому что по ее характеру это последовательно.

то, Что необходимо понять, - то, что /etc/rc.local существует для совместимости со старой системой SysV init для перевода в рабочее состояние служб и SysV, первоначально начатого как последовательная система путь назад за добрые старые времена AT& T Unix. Как хаос объясняет в его ответе :

SysV выполняет сценарии в последовательном порядке на основе их числа в имени файла. Systemd не делает. Если зависимости встречены, systemd сразу запускает скрипты, не соблюдая нумерацию названий сценария.

Вторая причина состоит в том, что rc.local сам по себе сценарий (заметил #!/bin/sh -e строка?). Сценарии по своей природе последовательны также, поэтому если одна команда не закончилась или не была помещена в фон - сценарий должен будет ожидать программы A, чтобы сделать ее фетиш или перестать работать полностью, прежде чем что-либо еще сможет произойти. Кроме того, заметьте комментарии наверху файла:

# 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.

Так Ваш sslocal -c /home/kinka/azure.conf просто держит систему в заложниках и не позволяет сценарию выйти и начальная загрузка полной системы. Это - все.

1
ответ дан 2 November 2019 в 02:06

Другие вопросы по тегам:

Похожие вопросы: