if you don't want to add a static ip on this interface, maybe you have to delete the IP assigned by DHCP client.
Running this script will remove the ip on eth0.
#!/bin/sh
localip=`ip addr list dev eth0 | grep "inet " | sed 's/\(^\s*inet\s\)\([0-9\.]*\)\([\s\/].*\)/\2/'`
if [[$ip != ""]]; then
sudo ip addr del $localip dev eth0
fi
You need to run it manually or set it into crontab. Or, try to call it after IP assigned, but I don't know how to hook that. After the IP address removed, it works like the dhcp client is disabled on this interface.
Note: This is only a workaround by removing the effect of DHCP client on the specified interface, not really disable it. It works on my solution which required the interface is UP without ANY ip address assigned.