Recall that last week, when we were testing enabling/disabling ENMs, I
came across the situation where the log was saying the script "completed
normally", but the return code was not 0 (it was 102 or 65 or something
like that).
I've done a bit of digging and testing and have come to the conclusion
that this return value of non-zero does not mean that the script failed.
bash-3.2# nwamcfg list enm myenm
ENM:myenm
activation-mode manual
stop "/usr/bin/echo stop"
enabled true
start "/var/tmp/enm-script"
bash-3.2# cat /var/tmp/enm-script
#!/sbin/sh
echo "script run" > /var/tmp/echoed.txt
Now, enable myenm
bash-3.2# nwamadm enable myenm
Enabling enm 'myenm'
check debug logs. says "completed normally: 65". 65 is supposed to be
the return value from the script (nwamd/util.c:143). nwamd checks this
return value and decides that the script failed.
bash-3.2# tail -f /var/tmp/nwam.log
Feb 9 15:55:55 unknown nwamd[123354]: [ID 853634 daemon.debug] 6:
door_switch: activating myenm
Feb 9 15:55:55 unknown nwamd[123354]: [ID 545250 daemon.debug] 6:
enqueueing event 17 (ENABLE) for object (80b2ac8) myenm
Feb 9 15:55:55 unknown nwamd[123354]: [ID 432327 daemon.debug] 2:
dequeueing event of type 17 (ENABLE) for object myenm
Feb 9 15:55:55 unknown nwamd[123354]: [ID 394438 daemon.debug] 2:
(80b2ac8) myenm: running method for event 17 (ENABLE)
Feb 9 15:55:55 unknown nwamd[123354]: [ID 995178 daemon.debug] 2:
nwamd_enm_handle_enable_event: running script /var/tmp/enm-script
for ENM myenm
Feb 9 15:55:55 unknown nwamd[123354]: [ID 653470 daemon.info] 2:
'/usr/bin/ctrun /var/tmp/enm-script' completed normally: 65
Feb 9 15:55:55 unknown nwamd[123354]: [ID 531482 daemon.error] 2:
nwamd_enm_handle_enable_event: execution of '/var/tmp/enm-script'
failed for ENM myenm
But, check if script actually ran:
bash-3.2# cat /var/tmp/echoed.txt
script run
It actually did.
What's going on here?
Anurag
PS. On a better news front, if an enm has an fmri, the
enabling/disabling through nwamadm works spectacularly. :)