Alas, you missed the point of singletons. Their only and main advantage is to have ever only one instance of them. I don't know the KDE stuff but a usual singleton cannot deal with different configurations. It is the single(ton) instance. I'll give an example: think of some hardware, e.g. different possible CCD cameras which could be connected to a computer. Only one camera can (usually) be handled at a time because the downloading, displaying etc. of images is time and memory consuming. Then a ...
It seems that you are using container classes. Pls. paste the code referred by your compiler. - I assume the compiler complains about the incomplete type.
If you want to circumvent the shell script, here is another way: Create two applications. The first one being a wrapper application which will start a QPorcess. The QProcess is passed kdesu and the name of your real application as parameters.