C'est assez déroutant. Est-ce que quelqu'un sait d'où la hostname
commande stocke et lit le nom d'hôte?
Je pensais que c'était / etc / hostname mais il n'y a pas un tel fichier sur ce système Linux que j'utilise. J'ai essayé d'utiliser strace pour trouver où il se trouvait, mais aucun appel de lecture n'a renvoyé ces informations:
$ 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
Ensuite, j'ai remarqué qu'il s'agissait d'un appel système unique qui a renvoyé ces informations:
uname({sys="Linux", node="server-name", ...}) = 0
Un grep récursif dans / etc / ne renvoie rien:
grep "server-name" -r /etc
Où uname stocke-t-elle ces informations? Juste en mémoire?