diff --git a/iscsi-tgtd/atboot.cgi b/iscsi-tgtd/atboot.cgi
index 412ef978c..5df751eb1 100755
--- a/iscsi-tgtd/atboot.cgi
+++ b/iscsi-tgtd/atboot.cgi
@@ -9,6 +9,7 @@ our (%text, %config, %in);
&ReadParse();
&error_setup($text{'atboot_err'});
+&setup_tgtd_init();
my $old = &init::action_status($config{'init_name'});
if ($old != 2 && $in{'boot'}) {
# Enable at boot
diff --git a/iscsi-tgtd/config b/iscsi-tgtd/config
index ad12ac110..c1f9f21bf 100644
--- a/iscsi-tgtd/config
+++ b/iscsi-tgtd/config
@@ -1,3 +1,4 @@
config_file=/etc/tgt/tgtd.conf
+tgtd=tgtd
tgtadm=tgtadm
init_name=tgtd
diff --git a/iscsi-tgtd/config-debian-linux b/iscsi-tgtd/config-debian-linux
new file mode 100644
index 000000000..f1de065ea
--- /dev/null
+++ b/iscsi-tgtd/config-debian-linux
@@ -0,0 +1,5 @@
+config_file=/etc/tgt/targets.conf
+tgtd=tgtd
+tgtadm=tgtadm
+tgtadmin=tgt-admin
+init_name=tgtd
diff --git a/iscsi-tgtd/config.info b/iscsi-tgtd/config.info
index b0f2b371f..d9b3f035a 100644
--- a/iscsi-tgtd/config.info
+++ b/iscsi-tgtd/config.info
@@ -1,4 +1,6 @@
config_file=iSCSI TGTD configuration file,0
add_file=Add new targets to,3,Primary configuration file
+tgtd=Full path to tgtd command,0
tgtadm=Full path to tgtadm command,0
+tgtadmin=Full path to tgt-admin command,0
init_name=Bootup script name,0
diff --git a/iscsi-tgtd/iscsi-tgtd-lib.pl b/iscsi-tgtd/iscsi-tgtd-lib.pl
index fabaec561..b9fbab2ba 100644
--- a/iscsi-tgtd/iscsi-tgtd-lib.pl
+++ b/iscsi-tgtd/iscsi-tgtd-lib.pl
@@ -23,9 +23,9 @@ return &text('check_econfig', "$config{'config_file'}")
if (!-r $config{'config_file'});
return &text('check_etgtadm', "$config{'tgtadm'}")
if (!&has_command($config{'tgtadm'}));
-&foreign_require("init");
-return &text('check_einit', "$config{'init_name'}")
- if (&init::action_status($config{'init_name'}) == 0);
+#&foreign_require("init");
+#return &text('check_einit', "$config{'init_name'}")
+# if (&init::action_status($config{'init_name'}) == 0);
return undef;
}
@@ -313,10 +313,28 @@ my $pid = &find_byname("tgtd");
return $pid;
}
+# setup_tgtd_init()
+# If no init script exists, create one
+sub setup_tgtd_init
+{
+&foreign_require("init");
+return 0 if (&init::action_status($config{'init_name'}));
+&init::enable_at_boot($config{'init_name'},
+ "Start TGTd iSCSI server",
+ &has_command($config{'tgtd'}).
+ " && sleep 2 && ".
+ &has_command($config{'tgtadmin'})." -e",
+ "killall -9 tgtd",
+ undef,
+ { 'fork' => 1 },
+ );
+}
+
# start_iscsi_tgtd()
# Run the init script to start the server
sub start_iscsi_tgtd
{
+&setup_tgtd_init();
&foreign_require("init");
my ($ok, $out) = &init::start_action($config{'init_name'});
return $ok ? undef : $out;
@@ -326,6 +344,7 @@ return $ok ? undef : $out;
# Run the init script to stop the server
sub stop_iscsi_tgtd
{
+&setup_tgtd_init();
&foreign_require("init");
my ($ok, $out) = &init::stop_action($config{'init_name'});
return $ok ? undef : $out;