I wrote a simple upstart job:
start on runlevel [2345]
stop on runlevel [016]
exec dnscrypt-proxy -E -R cisco-ipv6
It starts properly on boot, but is still not recognized by service --status-all and initctl list. I have searched the web and found some similar issues caused by syntax error, so I checked with init-checkconf, and got a "syntax ok". Am I missing something?
Edit:
I found this related question: Correct way to install a custom upstart service
It turns out that I was missing sudo when running initctl list. Still it does not expain why some service require root permission to be displayed, while others does not, as all .conf files have exactly the same owner and permission.