To dość zagadkowe. Czy ktoś wie, gdzie hostname
polecenie przechowuje i odczytuje nazwę hosta?
Myślałem, że to / etc / hostname, ale w tym systemie Linux nie ma takiego pliku, którego używam. Próbowałem użyć strace, aby znaleźć lokalizację, ale żadne wywołania odczytu nie zwróciły tych informacji:
$ 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
Potem zauważyłem, że to nie nazwa połączenia systemowego, które zwróciło tę informację:
uname({sys="Linux", node="server-name", ...}) = 0
Rekurencyjny grep w / etc / nic nie zwraca:
grep "server-name" -r /etc
Gdzie uname przechowuje te informacje? Właśnie w pamięci?