Sorry for not being clear enough.
With Prodigy, you define a service. Usually that is a path, command and arguments to the command. You can then via the Prodigy GUI manage (start/stop/restart/etc...) these services.
To put it very simple, what happens in Prodigy when a service is started is basically this:
(let* ((default-directory "/tmp")
(process (start-process "server" nil "python" "-m" "SimpleHTTPServer" "8000")))
(set-process-filter
process
(lambda (_ output)
;; ...
)))
What happens in practice is that, when I get to work, I select the services I need and start them (unless Emacs was killed, they are already started). Sometimes I use Emacs quite frequently and then this is not so much of an issue because Emacs does not have time to idle. But when I don't use Emacs for a while, it will hang waiting for the response from the service (because Emacs is idle).
Hope you understand my issue better!