В моем беспроводном устройстве периодически возникают ошибки DNS. Как перезапустить Network-Manager в 15.04?

В Ubuntu у меня немного глючит беспроводная связь, время от времени DNS отключается без причины, и мне нужно запустить sudo restart network-manager чтобы на самом деле это исправить.

Однако я только что обновился до 15.04, и после повторной проблемы с DNS я попытался перезапустить диспетчер сети - однако, меня встретили с ошибкой restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

Я видел другой вопрос AskUbuntu, в котором говорилось, что проблема связана с systemd vs upstart, и что для исправления я мог переустановить upstart. Я так и сделал, используя команду

sudo apt-get install upstart-sysv

Однако это, похоже, не исправило мою неспособность перезапустить сетевой менеджер.

У меня двоякий вопрос - при необходимости, как я могу откатить изменения, внесенные в мою систему, путем установки upstart, и как я могу сделать так, чтобы я действительно мог перезапустить сетевой менеджер?

Кроме того, я бы принял некоторую помощь в решении моих ошибок DNS, но исторически никто не мог помочь мне с этим.

2 ответа

Решение

Система управления услугами изменилась.

Каждый набор инструментов для управления системой имеет собственные утилиты. Утилита, к которой вы привыкли, является одной из тех, которые поставляются с выскочкой, которая является тривиальной прокладкой для initctl restart, Но это Ubuntu версии 15. Вы больше не используете upstart.

Вы используете systemd, а команды управления службами являются подкомандами systemctl а не из initctl, Итак, службы запускаются с systemctl start остановился с systemctl stop, включен с systemctl enable, отключен с systemctl disable, запрашивается с systemctl status и перезапущен с systemctl restart,

выскочка уже была там.

Upstart уже был установлен в вашей системе. Иначе не было бы его restart программа для запуска в первую очередь, и вы даже не увидели бы ее сообщения об ошибках. Он просто не работал в качестве активной системы управления системой.

Установка upstart-sysv пакет использует кувалду, чтобы взломать грецкий орех. Вы можете переключиться на выгрузку на лету из меню GRUB. Выполнение этого в этом случае не привело бы вас к тому беспорядку, в котором вы сейчас находитесь, и теперь вы хотите вернуться обратно. В самом деле, переключение на выскочку - это использование кувалды, чтобы расколоть грецкий орех, когда все, что вам действительно нужно было сделать, это изучить команды systemd, которые ничем не отличаются от initctl из них.

В примечаниях к выпуску говорится, что при установке этого пакета были удалены два других. Совершенно очевидно, что вам нужно снова установить эти два других. ☺

killall это еще один кувалда.

Как следует из названия, оно не различает, а просто убивает все под определенным именем. Вам это не нужно, даже с выскочкой. Как systemd, так и upstart точно отслеживают, какие процессы им нужно убить, чтобы перезапустить службы, и только эти службы, потому что они изначально породили процессы. Если у вас есть даже наполовину приличные менеджеры сервисов в вашей системе, то вам никогда не следует подходить к вещам с killall, Просто используйте команды, предоставляемые наборами инструментов управления сервисами.

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

дальнейшее чтение

  • Леннарт Поэттеринг (2013-10-07). systemctl, Системные справочные страницы. freedesktop.org.
  • Джеймс Хант и Клинт Байрум (2014). "Утилиты". Выскочка поваренной книги.
  • Себастьян Бачер (2015-04-24). "Управление загрузкой и обслуживанием". Замечания к выпуску Ubuntu 15 Canonical.

Начиная с 15.04, Ubuntu теперь использует systemd, а не upstart, как и большинство других выпусков дистрибутива. Не устанавливайте upstart и не запускайте команды upstart для управления сервисами, если вы действительно не знаете, что делаете. Если у вас установлен upstart, я бы рекомендовал удалить его.

Чтобы перезапустить диспетчер сети без полномочий root, поскольку он запускается как процесс-демон:

sudo killall NetworkManager && sudo NetworkManager

должно работать нормально

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