The forking performed by "system.run" during startup causes upstart to fail to detect the correct PID.
This is essentially the same issue as:
ZBX-5234 but it's not fixed since the fix for ZBX-5234 relied on removing the fork from the "system.hostname" implementation. In our case there's no easy way to remove forking from "system.run".
Question is why not load the config file (and perform necessary forks) AFTER daemonizing. This, btw, would enable ZBXNEXT-1631.