# /etc/init.d/dhcpd start doesn't start

## arnelj

Hi,

my gentoo router stopped working yesterday, the dhcp server stopped. When I try to start the dhcp server with the command /etc/init.d/dhcpd start it just returns to the promt.

However if I start it with the command /usr/sbin/dhcpd The server starts as it should.

```
jerker ~ # /usr/sbin/dhcpd

Internet Systems Consortium DHCP Server V3.1.2p1-Gentoo

Copyright 2004-2009 Internet Systems Consortium.

All rights reserved.

For info, please visit http://www.isc.org/sw/dhcp/

Wrote 39 leases to leases file.

Listening on LPF/eth1/00:26:18:5a:48:df/192.168.1/24

Sending on   LPF/eth1/00:26:18:5a:48:df/192.168.1/24

Sending on   Socket/fallback/fallback-net

jerker ~ #

```

I have remerged dhcp but no change.

All other services start as they should.

```

jerker ~ # rc-status

Runlevel: default

 autofs                                                                                                      [ started  ]

 dhcpd                                                                                                       [ stopped  ]

 iptables                                                                                                    [ started  ]

 lircd                                                                                                       [ started  ]

 local                                                                                                       [ starting ]

 net.eth1                                                                                                    [ started  ]

 netmount                                                                                                    [ started  ]

 net.ppp0                                                                                                    [ started  ]

 sshd                                                                                                        [ started  ]

 syslog-ng                                                                                                   [ started  ]

 vixie-cron                                                                                                  [ started  ]

jerker ~ # 

```

Any ideas how to troubleshoot this?  :Question: 

----------

## richard.scott

look in your log files i.e. /var/log/something

depending on what system logger your using it will be different

grep these files for the daemon your having a problem with and see what errors there are (if any).

----------

## arnelj

I have looked in dmeg, faillog lastlog and messages but non of them have any info about why the dhcpd do not start.

The problem seems to be that the /etc/init.d/dhcpd script do not run as it should. If you place an echo with a text string in the beginning it will be show the text on the console when executing the script with start as parameter, but if I place the echo statement in the start section of the script, nothing shows up. 

So my conclusion is that the error is located in the programs used by the dhcpd script.

I have to learn more about the support programs needed by the script.

----------

## richard.scott

try this:

```
# /etc/init.d/dhcpd stop

# /etc/init.d/dhcpd zap

# /etc/init.d/dhcpd start

# cat /var/log/messages | grep dhcp
```

Perhaps its because dhcpd is the dhcp server, if your network already has one then this could be your problem.

Rich.

----------

## arnelj

Here is the output

```

jerker ~ # /etc/init.d/dhcpd stop

 * WARNING:  dhcpd has not yet been started.

jerker ~ # /etc/init.d/dhcpd zap

 * Manually resetting dhcpd to stopped state.

jerker ~ # /etc/init.d/dhcpd start

jerker ~ # cat /var/log/messages | grep dhcp

jerker ~ #

```

I have also reemerged dhcp and baselayout without success.

----------

## arnelj

Hi again

by using the debug flag in /etc/init.d/dhcpd and run the command in a healthy gentoo system and compare it to my unhealthy  dhcp server i have got this difference.

Unhealthy dhcp server

```
+ shift

+ [[ 2 -lt 1 ]]

+ for arg in '"$@"'

+ case "${arg}" in

+ for arg in '"$@"'

+ case "${arg}" in

+ retval=0

+ for arg in '"$@"'

+ case "${arg}" in

+ for arg in '"$@"'

+ case "${arg}" in

+ svc_start

+ local x= y= retval=0 startinactive=

+ is_runlevel_start

+ [[ -d /var/lib/init.d/softscripts.old ]]

+ service_failed dhcpd

+ [[ -n dhcpd ]]

+ [[ -L /var/lib/init.d/failed/dhcpd ]]

+ return 1

+ retval=1

+ service_started dhcpd

+ test_service_state dhcpd started

+ [[ -z dhcpd ]]

+ [[ -z started ]]

+ local f=/var/lib/init.d/started/dhcpd

+ [[ ! -x /etc/init.d/dhcpd ]]

+ [[ -e /var/lib/init.d/started/dhcpd ]]

+ exit 1
```

Healthy system

```
+ shift                                                                                                                  

+ [[ 2 -lt 1 ]]                                                                                                          

+ for arg in '"$@"'                                                                                                      

+ case "${arg}" in                                                                                                       

+ for arg in '"$@"'                                                                                                      

+ case "${arg}" in                                                                                                       

+ retval=0                                                                                                               

+ for arg in '"$@"'                                                                                                      

+ case "${arg}" in                                                                                                       

+ for arg in '"$@"'                                                                                                      

+ case "${arg}" in                                                                                                       

+ svc_start                                                                                                              

+ local x= y= retval=0 startinactive=                                                                                    

+ is_runlevel_start                                                                                                      

+ [[ -d /var/lib/init.d/softscripts.old ]]                                                                               

+ service_started dhcpd                                                                                                  

+ test_service_state dhcpd started                                                                                       

+ [[ -z dhcpd ]]                                                                                                         

+ [[ -z started ]]                                                                                                       

+ local f=/var/lib/init.d/started/dhcpd                                                                                  

+ [[ ! -x /etc/init.d/dhcpd ]]                                                                                           

+ [[ -e /var/lib/init.d/started/dhcpd ]]                                                                                 

+ service_inactive dhcpd                                                                                                 

+ test_service_state dhcpd inactive                                                                                      

+ [[ -z dhcpd ]]                                                                                                         

+ [[ -z inactive ]]                                                                                                      

+ local f=/var/lib/init.d/inactive/dhcpd                                                                                 

+ [[ ! -x /etc/init.d/dhcpd ]]                                                                                           

+ [[ -e /var/lib/init.d/inactive/dhcpd ]]                                                                                

+ mark_service_starting dhcpd                                                                                            

+ [[ -z dhcpd ]]                                                                                                         

+ ln -sn /etc/init.d/dhcpd /var/lib/init.d/starting/dhcpd                                                                

+ [[ -f /var/lib/init.d/started/dhcpd ]]                                                                                 

+ [[ -f /var/lib/init.d/inactive/dhcpd ]]                                                                                

+ return 0

.

.

. and so on
```

The difference begins at this row + [[ -d /var/lib/init.d/softscripts.old ]]

I don't know what it means.

----------

## arnelj

The dhcp server seams to work again by removing the /var/lib/init.d/softscripts.old directory. The healthy system didn't have that directory.

Thanks Richard for your time

Arne

----------

