I see that there is a systemd service called dhcpcd5 and an init.d script called dhcpcd. Why both ways? What are the differences and how to choose which run?
Most popular distribution have changed its init system from old SysV to systemd including Debian and its flavor Raspbian. Scripts in
/etc/init.d/ are leftover from SysV and they are all emulated by systemd. I think they are only available for backward compatibility of old scripts, or the maintainer of the programs still doesn't have realized that "init world" has changed and that init.d scripts will disappear more and more.
If asking what to use then you should only use systemd because that's what makes all jobs.