मैं पुनरारंभ किए बिना होस्टनाम कैसे बदलूं?

मैं ओएस होस्टनाम बदलना चाहता हूं लेकिन मैं पुनरारंभ नहीं करना चाहता ।

मैंने संपादित किया है /etc/hostname लेकिन इसे लागू करने के लिए पुनरारंभ की आवश्यकता है । इससे कैसे बचें?

यह आसान है । बस गियर आइकन (स्क्रीन के ऊपरी दाएं कोने पर स्थित) पर क्लिक करें, "इस कंप्यूटर के बारे में" स्क्रीन (गियर आइकन पर स्थित ) खोलें और "डिवाइस का नाम"संपादित करें ।

या, टर्मिनल में, निम्न कमांड का उपयोग करें:

sudo hostname your-new-name

यह होस्टनाम को आपके-नए-नाम पर तब तक सेट करेगा जब तक आप पुनरारंभ नहीं करते । देखें man hostname और मैं कंप्यूटर का नाम कैसे बदलूं? अधिक जानकारी के लिए. उपयोग न करें _ आपके नाम पर ।

नोट

में अपने परिवर्तनों को पुनः आरंभ करने के बाद /etc/hostname उपयोग किया जाएगा, इसलिए (जैसा कि आपने प्रश्न में कहा था), आपको अभी भी उपयोग करना चाहिए

sudo -H gedit /etc/hostname

(या कुछ अन्य संपादक) ताकि फ़ाइल में होस्टनाम हो ।

यह जांचने के लिए कि फ़ाइल सही तरीके से सेट की गई है, चलाएँ:

sudo service hostname start

आपको संपादित भी करना चाहिए /etc/hosts और उस लाइन को बदलें जो पढ़ता है:

127.0.1.1     your-old-hostname

ताकि अब इसमें आपका नया होस्टनाम हो । (यह आवश्यक है अन्यथा कई आदेश कार्य करना बंद कर देंगे । )

Ubuntu के 13.04 के बाद

hostnamectl कमांड डेस्कटॉप और सर्वर संस्करण दोनों पर डिफ़ॉल्ट स्थापना का हिस्सा है ।

यह के माध्यम से होस्टनाम की स्थापना को जोड़ती है hostname कमांड और संपादन /etc/hostname. साथ ही स्थिर होस्टनाम सेट करना, यह "सुंदर" होस्टनाम सेट कर सकता है, जिसका उपयोग उबंटू में नहीं किया जाता है । दुर्भाग्य से, संपादन /etc/hosts अभी भी अलग से किया जाना है ।

hostnamectl set-hostname new-hostname

यह आदेश का हिस्सा है systemd-services पैकेज (जो उबंटू 14.04 के रूप में भी शामिल है timedatectl और localectl आदेश) । जैसा कि उबंटू माइग्रेट करता है systemd, यह उपकरण भविष्य है ।

पुनरारंभ किए बिना

उबंटू में होस्टनाम या कंप्यूटर का नाम बदलना पुनरारंभ किए बिना

संपादित करें/आदि / होस्टनाम और नए मान में बदलें,

nano /etc/hostname 

संपादित करें/आदि / होस्ट और पुराने 127.0.1.1 लाइन को अपने नए होस्टनाम में बदलें

127.0.0.1   localhost127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

नोट> : मैंने इसे एक मंच संपादन /आदि/होस्ट पर पढ़ा है और पुरानी 127.0.1.1 लाइन को अपने नए होस्टनाम में बदल दिया है (यदि आप ऐसा नहीं करते हैं, तो आप अब सुडो का उपयोग करने में सक्षम नहीं होंगे । यदि आपने इसे पहले ही कर लिया है, तो ग्रब मेनू पर ईएससी दबाएं, रिकवरी चुनें, और अपनी होस्ट फ़ाइल को सही सेटिंग्स में संपादित करें)

अब रिबूट के बाद, आपका होस्टनाम आपके द्वारा चुना गया नया होगा

रिबूट के बिना

बदलने के लिए रिबूट के बिना, आप बस उपयोग कर सकते हैं hostname.sh आपके द्वारा संपादित /आदि/होस्टनाम के बाद । जब तक आप नीचे दिए गए कमांड को निष्पादित नहीं करते हैं, तब तक आपको अपने दोनों होस्ट नामों को /आदि/होस्ट (127.0.0.1 न्यूहोस्ट ओल्डहोस्ट) में रखना होगा:

sudo service hostname start

नोट : परिवर्तन को सक्रिय बनाने के लिए उपरोक्त आदेश । इस फ़ाइल में सहेजा गया होस्टनाम (/आदि/होस्टनाम) सिस्टम रिबूट पर संरक्षित किया जाएगा (और उसी सेवा का उपयोग करके सेट किया जाएगा) ।

जब आप उबंटू स्थापित कर रहे थे तो डिफ़ॉल्ट नाम सेट किया गया था । आप होस्ट और होस्टनाम फ़ाइलों को संपादित करके डेस्कटॉप और सर्वर दोनों में इसे आसानी से बदल सकते हैं । नीचे कैसे है:

  1. प्रेस CtrlAltt टर्मिनल खोलने के लिए कीबोर्ड पर । जब यह खुलता है, तो नीचे दिए गए कमांड को चलाएं: sudo hostname NEW_NAME_HERE

यह होस्टनाम को अगले रिबूट तक बदल देगा । परिवर्तन आपके वर्तमान टर्मिनल में तुरंत दिखाई नहीं देगा । नया होस्टनाम देखने के लिए एक नया टर्मिनल प्रारंभ करें ।

  1. नाम को स्थायी रूप से बदलने के लिए, होस्ट फ़ाइलों को संपादित करने के लिए कमांड चलाएँ:

    sudo -H gedit /etc/hostname और sudo -H gedit /etc/hosts

जीयूआई के बिना उबंटू सर्वर के लिए, चलाएं sudo vi /etc/hostname और sudo vi /etc/hosts और उन्हें एक से संपादित करें one.In दोनों फाइलें, नाम को आप जो चाहते हैं उसे बदलें और उन्हें सहेजें ।

अंत में, परिवर्तनों को लागू करने के लिए अपने कंप्यूटर को पुनरारंभ करें ।

क्लाउड-इनिट (उबंटू 18+) होस्टनाम दृढ़ता

Whilst ऊपर दृष्टिकोण (hostnamectl, etc/hostname, आदि) के आगमन के साथ तत्काल होस्टनाम परिवर्तन के लिए काम करें बादल-init - जो होस्टनाम की सेटिंग को नियंत्रित कर सकता है-कई अन्य चीजों के बीच । तो यह रिबूट के बाद छड़ी नहीं करेगा यदि क्लाउड-इनिट स्थापित है । यदि आप चाहते हैं कि रिबूट के बाद परिवर्तन बने रहें तो आपको संपादित करना होगा बादल-init config फ़ाइलें अक्षम , बादल-init के होस्टनाम सेट / अद्यतन मॉड्यूल:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

या क्लाउड-इनिट को पूरी तरह से अक्षम करें:

sudo touch /etc/cloud/cloud-init.disabled

यहां एक स्क्रिप्ट है जो होस्टनाम को निर्धारित तरीके से बदलती है । यह सुनिश्चित करता है कि न केवल sudo लेकिन एक्स 11 एप्लिकेशन भी बिना किसी पुनरारंभ के कार्य करना जारी रखते हैं ।

उपयोग: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bashNEW_HOSTNAME=$1echo $NEW_HOSTNAME > /proc/sys/kernel/hostnamesed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hostsecho $NEW_HOSTNAME > /etc/hostnameservice hostname startsu $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

पुनरारंभ किए बिना:

  1. में होस्टनाम बदलें /etc/hostname
  2. अपडेट करें /etc/hosts तदनुसार
  3. sudo sysctl kernel.hostname=mynew.local.host

अपने वर्तमान होस्टनाम की जाँच करें hostname -f

अपना वर्तमान होस्टनाम प्राप्त करने के लिए:

cat /etc/hostname

इसे किसी भी टेक्स्ट एडिटर में बदला जा सकता है । आपको 127.0.0.1 /आदि/मेजबानों के खिलाफ लोकलहोस्ट के अलावा अन्य प्रविष्टि को भी अपडेट करना होगा ।

Ubuntu 16.04

पर आधारित समाधान उत्तर से DigitalOcean Comunity.

संपादित करें मेजबान फ़ाइल।

$ sudo nano /etc/hosts

बदलें oldname नए के साथ ।

127.0.0.1 localhost newname

नया होस्टनाम सेटअप करें ।

$ sudo hostnamectl set-hostname newname

  1. की सामग्री बदलें /etc/hostname वांछित होस्टनाम के साथ (आप इसके साथ संपादित कर सकते हैं sudo nano /etc/hostname)
  2. में /etc/hosts, 127.0 के बगल में प्रविष्टि को बदलें।1.1 वांछित होस्टनाम के साथ (आप इसके साथ संपादित कर सकते हैं sudo nano /etc/hosts)
  3. निष्पादित करें sudo service hostname restart; sudo service networking restart

चेतावनी: उबंटू 18+ के साथ काम नहीं करेगा जो डिफ़ॉल्ट रूप से क्लाउड-इनिट चला रहा है, जो बूट पर होस्टनाम को नियंत्रित करता है ।

@nslntmnx, धन्यवाद!