В моем беспроводном устройстве периодически возникают ошибки 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
должно работать нормально