Link to home
Start Free TrialLog in
Avatar of aling
aling

asked on

Hostname keeps changing

Hi there,

I run the Core Dstro with a number of extra packages installed with the help of (B)LFS. I have a strange problem: my hostname 'corelinux' changes at random times to '-f' ...???

I've searched allmost every script now, but can't find any hostname-changing-commands...

Help? Please?

Harold...
Avatar of troopern
troopern

have you checked your /etc/hostname file ?
or /etc/hosts ?
edit your /etc/sysconfig/network file & put

HOSTNAME= 'corelinux'

there

then #hostname corelinux

reboot your system
I'd have a look at your dhcp client. Most probably, it's invoking a script post lease issuance.

Which dhcp client are you using ?
Avatar of aling

ASKER

OK:

'/etc/hosts' file:
127.0.0.1 localhost
127.0.0.1 corelinux

exerpt from '/etc/rc.d/rc.si'
# setup network [internet connections go in rc.mu]
hostname corelinux
ifconfig lo 127.0.0.1
route add -net 127.0.0.0 netmask 255.0.0.0 lo

exerpt from '/etc/rc.d/rc.mu'
# setup network
ifconfig eth0 192.168.0.20 netmask 255.255.255.0 up
route add -net 192.168.0.0/24 dev eth0
route add default gw 192.168.0.1

I don't use a DHCP  client nor RedHat so I also dont have a /etc/sysconf...

I do have this prompt occasionally :-)

[root@-f] ~ > hostname
-f

Hope to help you helping me with this...

Harold...
Ok. Change the following in your /etc/hosts :

192.168.0.20<tab>corelinux

And get rid of the second 127.0.0.1 line.

I don't know if this will solve your problem, but it can't be bad.

Some script somewhere is trying to get your fqdn hostname using "hostname -f".
And, for a reason I don't know, it's in fact setting your hostname to "-f"...
Weird.

Does it happen after you start a new X environment ?

You can try the following command to narrow the search :

find /etc/ | xargs grep -- "hostname -f"
Agree with Alf666 that should be change the name of your linux box with the IP

127.0.0.1 is for local loop.
> I do have this prompt occasionally :-)
sounds like you have an alias or function which is mal-programmed
please post results of:
  set|grep hostname
  alias|grep hostname
Avatar of aling

ASKER

Gentlemen,

find /etc/ | xargs grep -- "hostname -f" -> no result
set|grep hostname && alias|grep hostname -> no result

I've looked at the hostname man pag (http://www.die.net/doc/linux/man/man1/hostname.1.html) and none of the command line options work with my hostname binary. For example: hostname -d sets the hostname to '-d' instead of returning a value...

Perhaps things will change if I mak a fresh install of Coreutils-5.0?
Yes. There is also a chance you have multiple hostname commands on your system.
If you have installed locate, try :

locate hostname

This definitely explains why your hostname changes to "-f" sometimes.
Lots of scripts (including XFree startup scripts) use the hostname command to know who they are.
Avatar of aling

ASKER

Result of locate hostname:

/bin/hostname
/usr/lib/perl5/5.8.0/hostname.pl
/usr/man/man1/hostname.1
/usr/share/man/man3/BIO_get_conn_hostname.3
/usr/share/man/man3/BIO_set_conn_hostname.3
/usr/src/ocaml-3.07/otherlibs/unix/gethostname.c

I'll compile/install today, maybe that will fix things up...

Harold.
That shoud definitely.
I don't know where that hostname command comes from, but it's suspicious.
Avatar of aling

ASKER

OK,

Here's how I reinstalled coreutils:

coreutils-5.0 (ftp://ftp.nluug.nl/pub/gnu/coreutils/coreutils-5.0.tar.gz)
- tar zxvf coreutils-5.0.tar.gz
- cd coreutils-5.0
- ./configure && make && make install
- mv /usr/local/bin/* /bin -f

(I didn't use the --prefix=/ to be shure that the current binaries are overwritten)

[root@corelinux] / > hostname
corelinux
[root@corelinux] / > hostname -f
[root@corelinux] / > hostname
-f
[root@corelinux] / >

As you'll see, no results here... ;-(
ASKER CERTIFIED SOLUTION
Avatar of Alf666
Alf666

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
if hostname -f does not return a FQDN, then there is none configured
what contains your /etc/resolv.conf
ahoffmann : Nope. This specific version of hostname does not accept any argument (I checked the sources). If you "hostname -f", then your hostname IS "-f" :-(

Hence the proposal to use a proper version.
Avatar of aling

ASKER

Congratulations!

EE has proven worthy again!

I did had some probs compiling net-tools...

Quote from google search about compiling net-tools on kernel 2.6.x:

Net-tools' make process aborts with a missing declaration about the variable
"x25_address". That is because in the header file <linux/x25.h> there used to
be a typedef for this variable. Nowlonger it does not, being replaced by a
structure of the same name. This problem is easily worked around by acting as
follows: the file x25_sr.c in the lib/ subdirectory of the net-tools suite is
the source of the problem. In line 80 it uses the sizeof() operator to get
the size of the structure x25_address included from the "#include
<linux/x25.h>" line. The workaround I used was to add a line

struct x25_address x25_address_priv

to the beginning of the relevant function, X25_setroute() and change the line
80 use of sizeof(x25_address) to sizeof(x25_address_priv). This gives
sizeof() a structure named x25_address_priv of type x25_address which solves
the problems.

...net-tools-1.60 compiled and installed correctly and replaced my bogus version of hostname...

hostname -f now returns my hostname!!!

Thank you all for contributing to this Q! The points go to Alf666 for pointing out the net-tools package...

Thanx...

Harold.