Thanks for replies. Yes,I generally do it using $? for other linux commands,but somehow not comfortable doing it here.
iscsiadm -m ... >sucess 2>failure and if file is non-empty,print the contents accordingly is what I can think of. It might be very ugly way of doing it. On Jul 14, 2:20 pm, Mike Christie <[email protected]> wrote: > On 07/14/2010 12:56 PM, Boaz Harrosh wrote: > > > > > > > On 07/14/2010 08:23 PM, Mike Christie wrote: > >> On 07/14/2010 10:49 AM, Boaz Harrosh wrote: > >>> On 07/14/2010 05:52 PM, Mike Christie wrote: > >>>> On 07/14/2010 05:30 AM, HIMANSHU wrote: > >>>>> How can we know error status of iscsiadm commands like > >>>>> discovery,login,logout. > > >>>>> I think,all of them directly returns corresponding success/failure > >>>>> messages. > > >>>>> so mostly I can just fire the commands without checking any error > >>>>> codes after it? > > >>>> If you run > > >>>> iscsiadm -m node .... -l > > >>>> iscsiadm should return a error code like other programs. If you wanted > >>>> to see it you could do > > >>>> iscsiadm -m node .... -l > >>>> echo $? > > >>> Speaking of which. When I want to completely run from a script file > >>> I currently have two ugly loops > > >>> after starting the iscsi service and before I can iscsiadm I must do: > > >>> start_iscsi_intiator() > >>> { > >>> if ! service $ISCSI status; then > >>> service iscsi start ; > > >>> until cat /sys/class/iscsi_transport/tcp/handle 2>/dev/null ; > >>> do > >>> sleep 1; > >>> done > >>> fi > >>> } > > >>> Effectively wait for the /sys/class/iscsi_transport/tcp/handle file to > >>> appear > > >>> And after login but before I can actually start banging on my scsi device > >>> I need: > >>> login_iscsi() > >>> { > >>> echo login into: $IP_ISCSI > >>> $iscsiadm -m discovery -t sendtargets -p $IP_ISCSI --login; > > >>> until ls $DEV_ISCSI 2>/dev/null; do sleep 1; done > >>> } > > >>> Effectively wait for the device to appear. This one is particularly nasty > >>> because it assumes that I know what $DEV_ISCSI will be. > > >>> Would we want to add a --wait-server and --wait switches to iscsiadm > >>> --wait-server - will wait for the iscsi-kernel-modules and iscsid > >>> server > >>> to stabilize. (until some timeout) > > >> Not sure. When service iscsi start is run, it will eventually load the > >> modules. The script does not return until modprobe has returned and > >> modprobe does not return until the kernel module module_init function > >> and those do not return until it has run the sysfs functions that create > >> the files you are waiting on. So are you saying that once module_init > >> has completed the files are not accessible right away? > > > OK, so I just got lucky here probably, since I'm doing a sleep 1; > > so the first iteration fails then a 1 sec wait is good enough. I think > > what happens is that the iscsid server is not yet ready for communication > > with iscsiadm. I'll remove the wait and run with debug-on see what actually > > fails. > > Oh yeah, Hannes had thought he saw what you are seeing too. Different > sysfs files though. I thought they should be created/ready by the time > we return from the module_init functions. I might be wrong or there > might be a bug in the sysfs code? I did not hear back from Hannes. -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.
