There are many reasons why a program that works in terminal could stop working as a daemon:
- Different environment variables, for example $PATH
- Different user and thus missing permissions
- Maybe some streams (STDIN, STDOUT, STDERR) are not opened for the daemon
- Maybe one of the program it starts tries to talk to the terminal, and fails
Your best bet is to start logging, and hope that the log file will reveal some information.