これは非常に不可解です。hostname
コマンドがどこからホスト名を保存し、読み取るかを知っていますか?
/ etc / hostnameであると思いましたが、使用しているこのLinuxシステムにはそのようなファイルはありません。私はstraceを使用してそれがどこにあるかを見つけようとしましたが、読み取り呼び出しはこの情報を返しませんでした:
$ strace hostname 2>&1 | grep read
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340^\0\0\0\0\0\0"..., 832) = 832
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\30\2\0\0\0\0\0"..., 832) = 832
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 248
read(3, "", 1024) = 0
次に、この情報を返したシステムコールがunameであることに気付きました。
uname({sys="Linux", node="server-name", ...}) = 0
/ etc /の再帰的なgrepは何も返しません:
grep "server-name" -r /etc
unameはこの情報をどこに保存しますか?ただ記憶に?