This is a great topic that may need some discussion as there are no firm rules or regulations (anything goes). There are however bad and good ways of doing this
I’ve not run this exact use case myself. I assume you want the process to outlive the skill start/shutdown?
For ease of installation an already running daemon is most likely not practical, since the normal skill install method doesn’t accommodate for installing custom services.
If the process don’t need to outlive the skill I recommend starting the process in the
__init__() method and having a custom shutdown method (override
shutdown()) that terminates the subprocess in a neat way (I don’t always practice what I preach)
You can start a process and detatch it once and then check if the process is running (either communication or search for running processes)
If starting a separate thread make sure the thread doesn’t share resources with the skill object since this will hinder garbage collection when the skill is reloaded.
Do you have any preferred way you’d like this to be handled? or have you been experimenting with this?