ifdown: use /var/run/udhcpc.%iface%.pid only if it exists

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2010-05-02 20:30:28 +02:00
parent 43afd75ea8
commit 78abf88dcc

View File

@ -573,8 +573,10 @@ static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec)
{
int result;
result = execute("kill "
"`cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
result = execute(
"test -f /var/run/udhcpc.%iface%.pid && "
"kill `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null",
ifd, exec);
/* Also bring the hardware interface down since
killing the dhcp client alone doesn't do it.
This enables consecutive ifup->ifdown->ifup */