Please reference this discussion thread for details:
https://sourceforge.net/p/staf/discussion/104046/thread/14ed81d6/
To summarize: When the SHELL option is specified when the PROCESS service is used to start a process a shell process should always be forked to run the command. This is not the case. Only when you specify a 'complex' command containing semicolons, pipes and probably (not verified) redirection is a shell actually started. If, for example, you run a simple 'ps -ef' you can see that the ps process has STAFProc as the parent. That is incorrect. It should have a shell as the parent which is what you get when you would run 'ps -ef | wc' for example.
Thank you.