Start script returns control just after java process was launched. But components and service assemblies that were previously installed/deployed will continue to be loaded/initialized in background. This process may time few seconds but in reality when large number of components and SAs were previously deployed it may take minutes on busy server. If container was started by some script and then this script does something with container (like checking state of components and SAs, deploying things, etc) it is very likely to fail. Instead smx start script should hold control until container actually finishes starting up or time outs.