मैं OS होस्टनाम बदलना चाहता हूं लेकिन मैं पुनरारंभ नहीं करना चाहता।
मैंने संपादित किया है, /etc/hostname
लेकिन इसे लागू करने के लिए पुनरारंभ की आवश्यकता है। इससे कैसे बचा जाए?
मैं OS होस्टनाम बदलना चाहता हूं लेकिन मैं पुनरारंभ नहीं करना चाहता।
मैंने संपादित किया है, /etc/hostname
लेकिन इसे लागू करने के लिए पुनरारंभ की आवश्यकता है। इससे कैसे बचा जाए?
जवाबों:
यह आसान है। बस गियर आइकन (स्क्रीन के ऊपरी दाएं कोने पर स्थित) पर क्लिक करें, "इस कंप्यूटर के बारे में" स्क्रीन (गियर आइकन पर स्थित) खोलें और "डिवाइस का नाम" संपादित करें।
या, किसी टर्मिनल में, निम्न कमांड का उपयोग करें:
sudo hostname your-new-name
यह होस्टनाम को आपके नए-नाम पर तब तक सेट करेगा जब तक आप पुनः आरंभ नहीं करते। देखें man hostname
और मैं कंप्यूटर का नाम कैसे बदलूं? अधिक जानकारी के लिए। _
अपने नाम का उपयोग न करें ।
ध्यान दें
पुनरारंभ होने के बाद आपके परिवर्तनों का /etc/hostname
उपयोग किया जाएगा, इसलिए (जैसा कि आपने प्रश्न में कहा था), आपको अभी भी उपयोग करना चाहिए
sudo -H gedit /etc/hostname
(या कुछ अन्य संपादक) ताकि फ़ाइल में hostname शामिल हो।
यह जाँचने के लिए कि फ़ाइल सही तरीके से सेट है, चलाएँ:
sudo service hostname start
आपको /etc/hosts
उस पंक्ति को भी बदलना और बदलना चाहिए जो पढ़ती है:
127.0.1.1 your-old-hostname
ताकि अब इसमें आपका नया होस्टनाम शामिल हो। (यह आवश्यक है अन्यथा कई आदेश कार्य करना बंद कर देंगे।)
/etc/hosts
(अन्य उत्तर देखें)
hostname
नया नाम तत्काल प्रभाव लेने का कारण होगा, यह "स्थायी" नहीं है जब तक कि आप भी नहीं बदलते हैं /etc/hostname
और /etc/hosts
, क्योंकि वे फाइलें हैं जो पुनरारंभ या क्रैश के बाद पढ़ी जाएंगी, बेशक, आप नहीं हो सकते हैं समय से पहले उम्मीद करना।
hostnamectl
आदेश दोनों डेस्कटॉप और सर्वर संस्करणों पर डिफ़ॉल्ट स्थापना का हिस्सा है।
यह hostname
कमांड और एडिटिंग के माध्यम से होस्टनाम सेट करता है /etc/hostname
। स्थैतिक होस्टनाम सेट करने के साथ ही, यह "सुंदर" होस्टनाम सेट कर सकता है, जिसका उपयोग उबंटू में नहीं किया जाता है। दुर्भाग्य से, संपादन /etc/hosts
अभी भी अलग से किया जाना है।
hostnamectl set-hostname new-hostname
यह कमांड systemd-services
पैकेज का हिस्सा है (जो कि Ubuntu 14.04 के रूप में, इसमें timedatectl
और localectl
कमांड भी शामिल हैं )। जैसे ही उबंटू माइग्रेट करता है systemd
, यह टूल भविष्य है।
hostnamectl
मौजूद नहीं है। लगता है कि उबंटू के कुछ स्वाद अभी तक सिस्टमड का उपयोग नहीं कर रहे हैं।
पुनरारंभ के बिना ubuntu में hostname या कंप्यूटर का नाम बदलना
संपादित करें / etc / hostname और नए मूल्य में परिवर्तन,
nano /etc/hostname
संपादित करें / आदि / होस्ट और अपने नए होस्टनाम के लिए पुरानी 127.0.1.1 लाइन बदलें
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
नोट : मैंने इसे एक फोरम> एडिट / etc / होस्ट्स पर पढ़ा है और पुरानी 127.0.1.1 लाइन को अपने नए होस्टनाम में बदल दिया है (यदि आप ऐसा नहीं करते हैं, तो आप अब sudo का उपयोग करने में सक्षम नहीं होंगे। यदि आप पहले से ही ऐसा कर चुके हैं। , ESC को ग्रब मेनू पर दबाएं, रिकवरी चुनें, और अपनी होस्ट फ़ाइल को सही सेटिंग्स में संपादित करें)
अब रिबूट के बाद, आपका होस्टनाम आपके द्वारा चुना गया नया होगा
रिबूट के बिना बदलने के लिए , आप संपादित करें / etc / hostname के बाद hostname.sh का उपयोग कर सकते हैं। जब तक आप नीचे दिए गए आदेश का पालन नहीं करते हैं, तब तक आपको अपने होस्ट नाम / etc / host (127.0.0.1 newhost oldhost) दोनों रखने होंगे:
sudo service hostname start
नोट : परिवर्तन को सक्रिय बनाने के लिए ऊपर दिए गए आदेश। इस फ़ाइल में सहेजा गया होस्टनाम (/ etc / hostname) सिस्टम रिबूट पर संरक्षित किया जाएगा (और उसी सेवा का उपयोग करके सेट किया जाएगा)।
sudo: unable to resolve host old-hostname
। उस भाग के लिए, @jesperado समाधान अच्छी तरह से काम करता है।
/etc/hosts
, तो w
कमांड, अपाचे, /sbin/reboot
और बहुत कुछ सहित 12.04.2 LTS पर मूल बातें विफल होने लगती हैं । अद्यतन करने के लिए सुनिश्चित करें/etc/hosts
127.0.0.1
लिए localhost
और उसके 127.0.1.1
लिए दोनों का संदर्भ लेते हैं। सही? फिर, अपने जवाब के अंत की ओर, एक रिबोट के बिना एक कार्रवाई के लिए , आप संदर्भ /etc/hosts
और 127.0.0.1 newhost oldhost
। तो, 127.0.1.1
पते की कोई आवश्यकता नहीं है ?
sudo nano /etc/hosts
प्रभावी होने के लिए बदलाव के लिए उपयोग करना था ; nano /etc/hosts
डिफ़ॉल्ट नाम तब सेट किया गया था जब आप उबंटू स्थापित कर रहे थे। आप मेजबानों और सर्वरों में मेजबानों और होस्टनाम फ़ाइलों को संपादित करके इसे आसानी से बदल सकते हैं। नीचे बताया गया है:
sudo hostname NEW_NAME_HERE
यह अगली रिबूट तक होस्टनाम को बदल देगा। परिवर्तन आपके वर्तमान टर्मिनल में तुरंत दिखाई नहीं देगा। नया होस्टनाम देखने के लिए एक नया टर्मिनल शुरू करें।
नाम को स्थायी रूप से बदलने के लिए, होस्ट फ़ाइलों को संपादित करने के लिए कमांड चलाएँ:
sudo -H gedit /etc/hostname
तथा sudo -H gedit /etc/hosts
GUI के बिना Ubuntu सर्वर के लिए, चलाएं sudo vi /etc/hostname
और sudo vi /etc/hosts
उन्हें एक-एक करके संपादित करें। दोनों फ़ाइलों में, आप जो चाहते हैं उसका नाम बदलें और उन्हें सहेजें।
अंत में, परिवर्तनों को लागू करने के लिए अपने कंप्यूटर को पुनरारंभ करें।
यहां एक स्क्रिप्ट है जो होस्टनाम को निर्धारित तरीके से बदल देती है। यह सुनिश्चित करता है कि न केवल, sudo
बल्कि X11 एप्लिकेशन भी बिना किसी रीस्टार्ट के काम करते रहें।
उपयोग: sudo ./change_hostname.sh new-hostname
#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
है? बस उत्सुक।
xauth list
) लेता है और पुराने होस्टनाम को नए होस्टनाम ( sed
) के साथ बदल देता है । फिर awk
पहले तर्क के आसपास उद्धरण रखता है xauth add
क्योंकि xauth
इनपुट और आउटपुट प्रारूप सममित नहीं हैं।
बिना पुनरारंभ:
/etc/hostname
/etc/hosts
तदनुसार अद्यतन करेंsudo sysctl kernel.hostname=mynew.local.host
के साथ अपने वर्तमान होस्टनाम की जाँच करें hostname -f
sudo: unable to resolve host oldname
, sysctl: setting key "kernel.hostname": Read-only file system
। हो सकता है क्योंकि Proxmox के अंदर एक CT है।
क्लाउड-इनिट के आगमन के साथ, उपरोक्त होस्ट (जैसे hostnamectl
, etc/hostname
आदि) तत्काल होस्टनाम परिवर्तन के लिए काम करते हैं - जो होस्टनाम की सेटिंग को नियंत्रित कर सकता है - कई अन्य चीजों के बीच। यदि क्लाउड-इनिट स्थापित है, तो यह रिबूट के बाद छड़ी नहीं करेगा। यदि आप रिबूट के बाद रहने के लिए परिवर्तन चाहते हैं, तो आपको क्लाउड-इनिट कॉन्फ़िगरेशन फ़ाइलों को संपादित करने की आवश्यकता होगी , क्लाउड-इनिट के होस्टनाम सेट / अपडेट मॉड्यूल को अक्षम करें :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
या क्लाउड-इनिट को पूरी तरह से अक्षम करें:
sudo touch /etc/cloud/cloud-init.disabled
/etc/cloud/cloud.cfg
। पैकेज का नाम क्या है? बस cloud-init
?
/etc/hostname
वांछित hostname के साथ सामग्री को बदलें (आप के साथ संपादित कर सकते हैं sudo nano /etc/hostname
)/etc/hosts
, प्रविष्टि को 127.0 के बगल में बदलें। वांछित होस्टनाम के साथ 1 .1 (आप के साथ संपादित कर सकते हैं sudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
# if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.
हूं। वर्तमान में मेरे पास उबंटू 18 नहीं है इसलिए मैं सप्ताहांत तक इसका परीक्षण नहीं कर सकता।
यह बिना पुनरारंभ और बिना किसी टर्मिनल उपयोग के है।
टर्मिनल खोलें। अपने लिए देखें।
(पुराने संस्करणों के लिए, टेक्स्ट-बॉक्स संपादन योग्य नहीं है।)
मूल पोस्टर के सवाल का शास्त्रीय जवाब यह है कि, एक बार जब आप संपादित कर लेते हैं /etc/hostname
, तो आप इसे रूट के रूप में ( ) विकल्प के साथ होस्टनाम (1) चलाकर इसे फिर से शुरू करें।-F
--file
sudo hostname -F /etc/hostname
होस्ट नाम (5) के साथ निपटने /etc/hostname
और कहा प्रोग्राम अब बीस साल के लिए डेबियन और उसके डेरिवेटिव में एक ही रहा है, और पैकेज उपलब्ध कराने के यह टैग किया गया है आवश्यक और आवश्यक है, और IIRC init स्क्रिप्ट सचमुच के लिए एक ही बात का इस्तेमाल किया है दशकों ( /etc/init/hostname.conf
अभी भी इसमें शामिल है), इसलिए मुझे कहना होगा कि मैं वास्तव में हैरान हूं कि किसी ने पहले ही इसका उल्लेख नहीं किया है :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
मुझे लगता है कि काम करना चाहिए
मैंने उत्तर पढ़ लिए हैं, लेकिन मुझे लगता है कि शायद आप इसके लिए देख रहे हैं:
/etc/hostname
फ़ाइल को संपादित करने के बाद बस इन दोनों कमांड को निष्पादित करें ।
$ sudo service hostname restart
$ exec bash
बस इतना ही। पुनरारंभ करने की कोई आवश्यकता नहीं है। यह भी सुनिश्चित करें कि आप /etc/hosts
फ़ाइल में नाम भी बदलते हैं ।
/etc/hosts
(मैंने 14.04 पर पुष्टि की)।
DigitalOcean Comunity के उत्तर पर आधारित समाधान ।
होस्ट फ़ाइल संपादित करें ।
$ sudo nano /etc/hosts
पुराने नाम को नए के साथ बदलें ।
127.0.0.1 localhost newname
नया होस्टनाम सेटअप करें।
$ sudo hostnamectl set-hostname newname