After some more investigation it doesn't appear as though /usr/pluto/Spawn_DCERouter.sh is being called more than once.
It seems that somehow '/usr/pluto/bin/Spawn_Device.sh 21' is being executed before Start_DCERouter.sh, the following is from my /var/log/pluto.log
1 09/19/09 10:18:21 SetupAudioVideo (server) ^[[1;00mStarting^[[1;00m
1 09/19/09 10:18:21 SetupAudioVideo (server) ^[[1;00m'^[[1;00m
1 09/19/09 10:18:21 SetupAudioVideo (server) ^[[1;00mDBSetting: S Reboot: Script Path: /usr/pluto/bin/SoundCards_Setup_i8x0.sh^[[1;00m
1 09/19/09 10:18:21 SetupAudioVideo (server) ^[[1;00mRunning: /usr/pluto/bin/SoundCards_Setup_i8x0.sh S^[[1;00m
1 09/19/09 10:18:21 /usr/pluto/bin/Start_X.sh (server) ^[[1;00mStarting X server (client: /usr/bin/xfwm4; parms: --compositor=off)^[[1;00m
1 09/19/09 10:18:22 /usr/pluto/bin/Start_X.sh (server) ^[[1;00mX server: backround; AlphaBlending: 0^[[1;00m
1 09/19/09 10:18:31 /usr/pluto/bin/Spawn_Device.sh 21 (spawning-device) ^[[1;00m11664 Dev: 21; Already Running list: ^[[1;00m
1 09/19/09 10:18:31 /usr/pluto/bin/Spawn_Device.sh 21 (spawning-device) ^[[1;00mdevice: 21 ip: localhost cmd_line: LaunchOrbiter.sh^[[1;00m
0 09/19/09 10:18:31 21 (spawning-device) ^[[1;00mEntering 21^[[1;00m
1 09/19/09 10:18:31 21 (spawning-device) ^[[1;00mStarting... 1^[[1;00m
1 09/19/09 10:18:31 21 (spawning-device) ^[[1;00mFound /usr/pluto/bin/LaunchOrbiter.sh^[[1;00m
1 09/19/09 10:18:31 LaunchOrbiter (server) ^[[1;00mNumber of desktops found: 6 ; desktops activated? 1^[[1;00m
1 09/19/09 10:18:31 LaunchOrbiter (server) ^[[1;00mPrimary desktop: 4 and secondary desktop 5^[[1;00m
1 09/19/09 10:18:37 /usr/pluto/bin/Start_DCERouter.sh (server) ^[[1;00mStarting DCERouter^[[1;00m
2 09/19/09 10:18:37 /usr/pluto/bin/Spawn_DCERouter.sh (server) ^[[1;33mWriting Version: 2.0.0.44^[[1;00m
1 09/19/09 10:18:37 /usr/pluto/bin/Spawn_DCERouter.sh (server) ^[[1;00mStarting DCERouter^[[1;00m
1 09/19/09 10:18:37 DCERouter (server) ^[[1;00mStarting... 1^[[1;00m
1 09/19/09 10:18:44 Spawn_Device.sh 22 (spawning-device) ^[[1;00m13256 Dev: 22; Already Running list: ^[[1;00m
1 09/19/09 10:18:44 Spawn_Device.sh 22 (spawning-device) ^[[1;00mdevice: 22 ip: 127.0.0.1 cmd_line: SimplePhone^[[1;00m
1 09/19/09 10:18:44 Spawn_Device.sh 26 (spawning-device) ^[[1;00m13280 Dev: 26; Already Running list: 22,^[[1;00m
1 09/19/09 10:18:44 Spawn_Device.sh 26 (spawning-device) ^[[1;00mdevice: 26 ip: 127.0.0.1 cmd_line: MPlayer_Player^[[1;00m
0 09/19/09 10:18:44 22 (spawning-device) ^[[1;00mEntering 22^[[1;00m
It looks like Device 21 is spawned and then Start_DCERouter.sh/Spawn_DCERouter.sh is called (where it erases the lock file) and when Device 22 is spawned the orbiter (Device 21) is not listed in the 'Already Running list: ' (as the lock file was erased). Then as Device 26 is spawned #22 is shown in the 'Already Running list: 22m,'.
Then when the the system tries to start Device 21 again a short time later:
1 09/19/09 10:19:08 /usr/pluto/bin/Spawn_Device.sh 21 (spawning-device) ^[[1;00m16630 Dev: 21; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,^[[1;00m
1 09/19/09 10:19:08 /usr/pluto/bin/Spawn_Device.sh 21 (spawning-device) ^[[1;00mdevice: 21 ip: localhost cmd_line: LaunchOrbiter.sh^[[1;00m
0 09/19/09 10:19:08 21 (spawning-device) ^[[1;00mEntering 21^[[1;00m
1 09/19/09 10:19:08 21 (spawning-device) ^[[1;00mStarting... 1^[[1;00m
1 09/19/09 10:19:08 21 (spawning-device) ^[[1;00mFound /usr/pluto/bin/LaunchOrbiter.sh^[[1;00m
1 09/19/09 10:19:08 LaunchOrbiter (server) ^[[1;00mNumber of desktops found: 6 ; desktops activated? 1^[[1;00m
1 09/19/09 10:19:08 LaunchOrbiter (server) ^[[1;00mPrimary desktop: 4 and secondary desktop 5^[[1;00m
1 09/19/09 10:19:10 Spawn_Device.sh 25 (spawning-device) ^[[1;00m16872 Dev: 25; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,21,^[[1;00m
1 09/19/09 10:19:10 Spawn_Device.sh 25 (spawning-device) ^[[1;00m16872 Device 25 was marked as 'running'. Not starting^[[1;00m
1 09/19/09 10:19:10 Spawn_Device.sh 25 (spawning-device) ^[[1;00m16872 Dev: 25; Exiting because not starting^[[1;00m
1 09/19/09 10:19:11 Spawn_Device.sh 26 (spawning-device) ^[[1;00m16867 Dev: 26; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,21,^[[1;00m
1 09/19/09 10:19:11 Spawn_Device.sh 26 (spawning-device) ^[[1;00m16867 Device 26 was marked as 'running'. Not starting^[[1;00m
1 09/19/09 10:19:11 Spawn_Device.sh 26 (spawning-device) ^[[1;00m16867 Dev: 26; Exiting because not starting^[[1;00m
1 09/19/09 10:19:11 Spawn_Device.sh 32 (spawning-device) ^[[1;00m16879 Dev: 32; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,21,^[[1;00m
1 09/19/09 10:19:11 Spawn_Device.sh 32 (spawning-device) ^[[1;00m16879 Device 32 was marked as 'running'. Not starting^[[1;00m
1 09/19/09 10:19:11 Spawn_Device.sh 32 (spawning-device) ^[[1;00m16879 Dev: 32; Exiting because not starting^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 22 (spawning-device) ^[[1;00m16849 Dev: 22; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,21,^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 22 (spawning-device) ^[[1;00m16849 Device 22 was marked as 'running'. Not starting^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 22 (spawning-device) ^[[1;00m16849 Dev: 22; Exiting because not starting^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 23 (spawning-device) ^[[1;00m16851 Dev: 23; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,21,^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 23 (spawning-device) ^[[1;00m16851 Device 23 was marked as 'running'. Not starting^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 23 (spawning-device) ^[[1;00m16851 Dev: 23; Exiting because not starting^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 58 (spawning-device) ^[[1;00m16883 Dev: 58; Already Running list: 22,26,32,25,23,58,15,16,18,19,28,29,30,21,^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 58 (spawning-device) ^[[1;00m16883 Device 58 was marked as 'running'. Not starting^[[1;00m
1 09/19/09 10:19:12 Spawn_Device.sh 58 (spawning-device) ^[[1;00m16883 Dev: 58; Exiting because not starting^[[1;00m
2 09/19/09 10:19:20 58 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=58^[[1;00m
2 09/19/09 10:19:20 32 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=32^[[1;00m
2 09/19/09 10:19:21 26 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=26^[[1;00m
2 09/19/09 10:19:21 25 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=25^[[1;00m
2 09/19/09 10:19:21 23 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=23^[[1;00m
2 09/19/09 10:19:22 22 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=22^[[1;00m
2 09/19/09 10:19:23 21 (spawning-device) ^[[1;33mShutting down... count=1/50 dev=21^[[1;00m
So my fix above of commenting out the 'rm -f ...' line is probably not correct but it works because the lock file is not deleted by Start_DCERouter.sh. Instead I believe the initial call to 'Spawn_Device.sh 21' probably shouldn't be happening until later.
It seems the next step is to figure out why/where 'Spawn_Device.sh 21' is executing before Start_DCERouter.sh. Can anyone with more knowledge than I confirm for me that this should not be happening in this order?