1. 程式人生 > >Ubuntu系統下如何在不重啟的情況下修改hostname

Ubuntu系統下如何在不重啟的情況下修改hostname

方案1:

在終端上可以使用下列命令完成hostname的修改

sudo hostname your-new-name

但這樣修改後有一個問題,下次重啟後此配置丟失;因此,需要進行下面的修改:

使用文字編輯工具,如vi修改/etc/hostname,使其包含你修改的hostname名字

sudo gedit /etc/hostname

同時,你需要修改/etc/hosts,並替換下面的行,使其包含最新的hostname的名字
127.0.1.1     your-old-hostname

方案2:

參考方案1,首先進行/etc/hostname和/etc/hosts的修改,修改完成後,使用service服務是hostname生效。

sudo /etc/init.d/hostname.sh start
那讓我們一起看看hostname.sh完成了哪些工作
[email protected]:~$ more /etc/init.d/hostname.sh
#! /bin/sh
### BEGIN INIT INFO
# Provides:          hostname
# Required-Start:
# Required-Stop:
# Should-Start:      glibc
# Default-Start:     S
# Default-Stop:
# Short-Description: Set hostname based on /etc/hostname
# Description:       Read the machines hostname from /etc/hostname, and
#                    update the kernel value with this value.  If
#                    /etc/hostname is empty, the current kernel value
#                    for hostname is used.  If the kernel value is
#                    empty, the value 'localhost' is used.
### END INIT INFO

PATH=/sbin:/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start () {
        [ -f /etc/hostname ] && HOSTNAME="$(cat /etc/hostname)"

        # Keep current name if /etc/hostname is missing.
        [ -z "$HOSTNAME" ] && HOSTNAME="$(hostname)"

        # And set it to 'localhost' if no setting was found
        [ -z "$HOSTNAME" ] && HOSTNAME=localhost

        [ "$VERBOSE" != no ] && log_action_begin_msg "Setting hostname to '$HOSTNAME'"
        hostname "$HOSTNAME"
        ES=$?
        [ "$VERBOSE" != no ] && log_action_end_msg $ES
        exit $ES
}

case "$1" in
  start|"")
        do_start
        ;;
  restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
  stop)
        # No-op
        ;;
  *)
        echo "Usage: hostname.sh [start|stop]" >&2
        exit 3
        ;;
esac
hostname.sh完成的就是從/etc/hostname中讀取使用者的配置,並呼叫hostname命令進行設定;此處考慮了異常的處理。

方案3

當然,你可以自己編寫shell指令碼來完成此項工作,change_hostname.sh指令碼的內容如下:

#!/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}')"

可以使用下面的命令,來完成hostname的修改
sudo ./change_hostname.sh new-hostname

相關推薦

linux建立正在執行資料庫的從庫

1、備份主庫 mysqldump -uroot -p123456 --routines --single_transaction --master-data=2 --databases test &g

Linux永久修改hostname

Linux下不重啟永久修改hostname 1、如果只是修改hostname可以通過如下命令 hostname newHostname   注意:這種修改方式只有當前有效,等伺服器重啟後hos

Ubuntu系統如何在情況修改hostname

方案1: 在終端上可以使用下列命令完成hostname的修改 sudo hostname your-new-name 但這樣修改後有一個問題,下次重啟後此配置丟失;因此,需要進行下面的修改: 使用文字編輯工具,如vi修改/etc/hostname,使其包含你修改的hos

情況新增一塊磁盤中出現的問題以及掛載到對應的目錄的詳細解決方法

不重啟 情況下 新增一塊 在vm中添加一塊新磁盤:[[email protected] ~]# fdisk -l 進行掃描,但找不到新增的磁盤解決方法:[[email protected] ~]# ls /sys/class/scsi_host/ 查看總線主機號 [

如何在 JVM 的情況重新載入證書檔案?

某種情況下需要動態下載證書檔案後使用 SSL 訪問某服務,但由於 JVM 使用預設的證書訪問新服務,該證書在 JVM 啟動的時候載入,那時還沒有新服務的證書,所以會報 ValidatorException,詳情: 16:44:27,338 ERROR [Htt

MySQL如何在情況修改能動態修改的引數

文章目錄 如何在不重啟的情況下,修改生效不能動態修改的引數 一、簡介 二、如何解決 如何在不重啟的情況下,修改生效不能動態修改的引數 一、簡介 問題來源於DBA內部,主從複製中提供了引數slave_skip_

@Java Web 程式設計師,我們一起給程式開個後門吧:讓你在保留現場,服務情況,執行我們的除錯程式碼

一、前言  這篇算是類載入器的實戰第五篇,前面幾篇在這裡,後續會持續寫這方面的一些東西。   實戰分析Tomcat的類載入器結構(使用Eclipse MAT驗證) 還是Tomcat,關於類載入器的趣味實驗 了不得,我可能發現了Jar 包衝突的祕密 重寫類載入器,實現簡單的熱

@Java web程式設計師,在保留現場,服務情況,執行我們的除錯程式碼(JSP 方式)

一、前言 類載入器實戰系列的第六篇(悄悄跟你說,這篇比較水),前面5篇在這裡: 實戰分析Tomcat的類載入器結構(使用Eclipse MAT驗證) 還是Tomcat,關於類載入器的趣味實驗 了不得,我可能發現了Jar 包衝突的祕密 重寫類載入器,實現簡單的熱替換 @Java Web 程式設計

@Spring Boot程式設計師,我們一起給程式開個後門吧:讓你在保留現場,服務情況,執行我們的除錯程式碼

# 前言 這篇其實是對一年前的一篇文章的補坑。 [@Java Web 程式設計師,我們一起給程式開個後門吧:讓你在保留現場,服務不重啟的情況下,執行我們的除錯程式碼](https://www.cnblogs.com/grey-wolf/p/11051427.html) 當時,就是在spring mvc應

在遠程連接一個 Wndows 10的情況遠程機器

desktop tps ati rem 選項 http 情況下 alt 情況 如果你從菜單找的話,是找不到這個菜單的!!! 你應該直接按 alt + F4 , 就會出現這個選項了。 參考: https://tommynation.com/shut-windows-10

刪除資料情況轉換檔案系統型別,從FAT32轉到NTFS

轉換檔案系統型別,從FAT32轉到NTFS(不刪除資料) 如果是從NTFS轉FAT32就不能用下面的方法,需要備份你的資料之後再格式化 最近下完電影想把電影傳到U盤裡,結果顯示檔案過大不能傳,然後看了看我的U盤屬性是FAT32,FAT32是不支援4G以上的檔案傳輸的,所以需要改變

linux lvm 磁碟擴容

擴容之前的磁碟狀況 此次擴容的方案為:給/ 分割槽加20G 1.新增磁碟20G 2.重新整理磁碟 cd   /sys/class/scsi_host  檢視有幾行 有幾個host就刷幾次 [[email protecte

openstack的系統斷電後出現虛擬機器能啟動的情況

在幾臺伺服器(安裝的CentOS7)上安裝和配置了一個Openstack(Juno)系統,前幾天因為供電事故,導致物理伺服器突然斷電,來電後啟動伺服器後,發現虛擬機器不能重啟了,檢查發現是有iSCSI方面的錯誤(虛擬機器除了自己的虛擬硬碟還掛載一個塊裝置作為第二塊硬碟),後

Android root環境的一些可用操作(關機命令,系統時間,命令)

 近期正在做一些需要root許可權的功能,比如關機,重啟等,下面總結一下用過的root嚇得linux命令使用  1.重啟操作 Runtime.getRuntime().exec("su -c rebo

安裝雙系統Ubuntu能訪問windows磁碟解決方案

為了開發,我的電腦安裝了雙系統,win10+Ubuntu。Ubuntu下能看到windows下的磁碟,但是點選訪問會出現以下提示: 錯誤出現原因:win8以上有快速啟動功能佔用了磁碟,ubuntu不能訪問。 解決方法: 開啟終端:如果沒有安裝ntfs-

Windows磁碟未分配變成黑色,Ubuntu系統分配

解決方式: 1.cmd下進入diskpart命令進入磁碟劃分模式 2.在dos下用指令select volume + 數字(卷號) 選中黑色未分配區域相鄰的一塊綠色邏輯分割槽的卷,。 3.然後執行extend, 黑色未分配區域會被合併到綠色區域下。 實測有用! 參考部落格:http://

ubuntu-關機命令

最近有Linux學習計劃,昨晚在虛擬機器上裝了ubuntu7.0,發現原來linux的介面越來越人性化了,以前真是井底之蛙,這也激勵著我要向linux靠攏。 1關機命令 shutdown 好像ubuntu的終端中預設的是當前使用者的命令,只是普通使用者,因此在終端器中可以使用

Linux系統在未登入的情況修改root密碼方法(linux系統忘記root密碼,進系統怎麼辦)

linux系統忘記root密碼,進不去系統怎麼辦 有時候我們會遇到這樣的情況,很久沒用的系統, 想要登入時卻發現忘記了root密碼,那該怎麼辦?一般來說我們可以進入單使用者或者通過編輯grub選單來修改root密碼。 對於一些版本的OS(如redhat)來說,編輯grub,

Ubuntu啟動//停止apache伺服器

Task: Start Apache 2 Server /啟動apache服務 # /etc/init.d/apache2 start or $ sudo /etc/init.d/apache2 start Task: Restart Apache 2 Server /重啟apache服務 # /etc/

xcode升級的情況真機測試高版本系統

蘋果的xcode的一直在隨著iOS系統的升級而升級,有時候弄的我們手足無措,尤其是開發中突然來個高系統版本的測試機,暫時又不想升級Xcode的情況下,可以使用以下辦法! 首先找有高版本測試許可權的xcode中按/Applications/Xcode.app/Contents