[stgt] [RFC] example init.d script for tgtd

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Tue Oct 21 15:30:53 CEST 2008


On Tue, 21 Oct 2008 13:49:34 +0200
Tomasz Chmielewski <mangoo at wpkg.org> wrote:

> FUJITA Tomonori schrieb:
> > On Tue, 21 Oct 2008 13:27:04 +0200
> > Tomasz Chmielewski <mangoo at wpkg.org> wrote:
> > 
> >> ronnie sahlberg schrieb:
> >>
> >> (...)
> >>
> >>>> the RHEL script will probably fail to start here (may depend on machine,
> >>>> load etc.):
> >>>>
> >>>>        daemon tgtd $TGTD_OPTIONS
> >>>>
> >>>>        # read the config        tgt-admin -e -c "${TGTD_CONFIG}"
> >>>>
> >>>>
> >>>> tgtd starts in the background immediately, but does not yet accept commands
> >>>> from tgtadm. So adding "sleep 1" between starting tgtd and tgt-admin should
> >>>> help.
> >>>>
> >>> Having to explicitely add a sleep in scripts is a bit dodgy.
> >>>
> >>> Maybe better to enhance tgtadm to try-and-retry for x seconds before
> >>> giving up and thus hiding this
> >>> ugly race from the average user?
> >> Or tgtd shouldn't background when it's not ready to accept commands yet.
> > 
> > I guess that 'daemon' program forks tgtd. Then tgtd can't do anything.
> 
> Umm, it seems to me that it's tgtd itself:
> 
> # tgtd ; tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2008-01.....
> tgtadm: can't connect to the tgt daemon, Connection refused
> tgtadm: can't send the request to the tgt daemon, Transport endpoint is not connected

I guess that 'daemon' program works differently from what you did here
(that's what I wrote in the previous mail). But I might be wrong since
I don't know how 'daemon' program works (Debian doesn't have the program).

For your case, this patch helps (you also need the tgtadm patch that
I've just sent)?

=
From: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
Subject: [PATCH] create ipc socket before calling daemon

Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
---
 usr/tgtd.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/usr/tgtd.c b/usr/tgtd.c
index 62aaa04..7024b12 100644
--- a/usr/tgtd.c
+++ b/usr/tgtd.c
@@ -325,6 +325,10 @@ int main(int argc, char **argv)
 		exit(1);
 	}
 
+	err = ipc_init();
+	if (err)
+		exit(1);
+
 	if (is_daemon && daemon(0,0))
 		exit(1);
 
@@ -344,10 +348,6 @@ int main(int argc, char **argv)
 		}
 	}
 
-	err = ipc_init();
-	if (err)
-		exit(1);
-
 	event_loop();
 
 	lld_exit();
-- 
1.5.6.5

--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list