Whenever I try to run adb devices:
$ adb devices
* daemon not running. starting it now *
* daemon started su
There may be more than one adb process running on the system. Tools such as the Android Reverse Tether may use their own version of the adb tool, hence the version in memory may conflict with the version run from the command line (via the path variable).
In Windows, press CTL+Shift+ESC to access Task Manager, sort in the Image Name column, then kill all instances of adb.exe by right-clicking, and choosing End Process. Note that there are multiple instances of adb.exe below:

In a Linux environment, just use the kill -9 command. Something like this worked on an Android device running adb (use ps output, search using grep for a process starting with adb, get the Process ID from the adb process(es), and send that ID to the kill -9 command):
kill -9 $(ps | grep "S adb" | busybox awk '{print $2}')
Once the adb processes - and thus conflicts - are resolved, then retry running adb from the command-line again:
adb start-server