The answer is, "you don't"! But we have good news.
systemd's philosophy is that reload is optional and should be left undefined if there is no true reload functionality. I'd define "true reload functionality" as a reload that does not kill and restart the service, or make the service change its PID. In other words, systemd only wants to reflect what features exists.
Instead, you should use systemctl reload-or-restart
which will do a reload if it exists, and a restart if it does not.
From the man page...
reload-or-restart PATTERN...
Reload one or more units if they support it. If not, restart them
instead. If the units are not running yet, they will be started.
reload-or-try-restart PATTERN...
Reload one or more units if they support it. If not, restart them
instead. This does nothing if the units are not running. Note that,
for compatibility with SysV init scripts, force-reload is
equivalent to this command.
Therefore: (1) leave ExecReload blank, (2) use systemctl reload-or-restart MYSERVICE
and, (3) you should be all set.
If you do try to use ExecReload to define a way to kill and restart the service, it will have a new PID and systemd would be confused.
This worked when I compiled the kernel with the option CONFIG_WATCHDOG_NOWAYOUT. Without this setting, the kernel disables the watchdog when the daemon is stopped.
Also, the error unregister_netdevice went away when I upgraded to 4.4 kernel
Best Answer
No, daemon-reload will reload all unit files, not the configuration for systemd itself. However,
# systemctl daemon-reexec
will re-execute systemd and cause it to digest its new configuration in the process.From the systemctl man page:
When the man page says daemon-reexec is useful for package upgrades, it in large part means that this command executes whatever new binaries there are and re-processes its configs. HOWEVER, the RPM that we use to upgrade systemd already contains a script to do this, so it is usually never needed in the case of a normal upgrade.
Or you can reboot. Either will do.