Изменить имя хоста для systemd в Fedora 25

Здесь происходит несколько ключевых вещей:

  • Как объясняется в справочном руководстве bash , Простая команда Расширение, раздел «Если имя команды не дается, присвоение переменных влияет на текущую среду оболочки. В противном случае переменные добавляются в среду выполняемой команды и не влияют на текущую среду оболочки». Таким образом, когда вы говорите var = "something" command arg1 arg2 , команда будет выполняться, когда var находится в среде команды и исчезает после выхода команды . Демонстрация этого проста - доступ к среде команды из команды:

     $ BAZ = "jake" python -c "import os; print os.environ ['BAZ']" 
    jake {{1 }} 

    Ничего удивительного. Такой синтаксис часто используется для запуска программ в модифицированной среде. Мои коллеги, пользователи unix.stackexchange.com и askubuntu.com, узнают этот пример: если пользователь использует немецкий язык, а вы говорите только по-английски, вы можете попросить их воспроизвести любую проблему, с которой они столкнулись, и получить вывод на английском языке следующим образом:

     LC_ALL = команда C 
     

    Обратите внимание, что доступ к среде не является специфическим для python . Это можно сделать с помощью C или любого другого языка программирования.Так уж получилось, что сейчас он был моим «любимым оружием» и использовался только для этой демонстрации.

  • Расширение переменной происходит перед запуском чего-либо. Таким образом, когда вы запускаете что-то вроде BAZ = "foo" echo $ BAZ , оболочка сначала просматривает свою среду, не находит там переменной BAZ и, таким образом, оставляет $ BAZ пустым. Простая демонстрация этого:

     $ BAZ = "jake" python -c "import sys; print 'ARG:', sys.argv [1]" $ BAZ 
    ARG: 
    Traceback (последний вызов последним): 
    Файл "", строка 1, в  
    IndexError: список индекса вне допустимого диапазона 
     

Также важно обратите внимание, отличие от BAZ = jake; echo $ BAZ , который представляет собой два отдельных командных оператора, и здесь BAZ = jake останется в среде оболочки. Вариант использования зависит от ваших намерений. Если вы намереваетесь запустить несколько программ, которым нужна такая переменная, может быть желательно экспортировать такую ​​переменную. Если вам это нужно только в этот конкретный момент, то предыдущее присвоение переменных может быть предпочтительнее.

2
13.04.2017, 15:37
3 ответа

Этот метод устарел в текущей версии systemd, но я сохраню его здесь как ссылку для некоторых комментариев.

Самый быстрый способ - sudo echo -e "bulldozer"> / etc / hostname с последующей перезагрузкой.

Сетевой стек Systemd должен подобрать его и применить при запуске.

Вы также можете использовать текстовый редактор и создать / отредактировать / etc / hostname вручную. (Я рекомендую nano , но сначала вам нужно установить его вручную на Fedora)

Systemd hostnamectl должен быть сегодня способом сделать это, это кажется.

-2
27.01.2020, 22:41

Согласно этой статье , вы должны запустить hostnamectl set-hostname name где name ] - желаемое имя хоста. Я полагаю, вам следует запустить это как root.

3
27.01.2020, 22:41

Это ужасный ответ, но он предоставлен для полноты. Сегодня обновил ядро. Старое ядро ​​Fedora было 4.9.13-200.fc25.x86_64. Новое ядро ​​— 4.9.13-201.fc25.x86_64.

После обновления ядра я вручную удаляю старое ядро ​​из /boot, используя rm. Это стандартная процедура для меня в Linux (я всегда выполняю ее, чтобы удалить ненужный хлам). В этом случае я запустил:

su -
cd /boot
rm -rf *4.9.13-200*
rm -rf .*4.9.13-200*

После ручного удаления я регенерирую меню Grub и затем перезагружаюсь. Это также стандартная процедура для меня в Linux.

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

После перезагрузки старого имени больше не было:

$ dmesg | egrep -i '(bulldozer|skylake)'
[  0.065941] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[  1.096957] systemd[1]: Set hostname to <skylake>.

Итак, что-то повлияло на имя хоста, используемое systemd, но я не уверен, что именно.

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

0
27.01.2020, 22:41

Теги

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