diff --git a/init/delboot.pl b/init/delboot.pl index e57c94a84..bad767eb3 100755 --- a/init/delboot.pl +++ b/init/delboot.pl @@ -54,4 +54,11 @@ elsif ($init_mode eq "win32") { # Delete win32 service &delete_win32_service($product); } - +elsif ($init_mode eq "rc") { + # Delete FreeBSD RC script + &delete_rc_script($product); + } +elsif ($init_mode eq "upstart") { + # Delete upstart service + &delete_upstart_service($product); + } diff --git a/init/init-lib.pl b/init/init-lib.pl index 6776833fb..c2a8a8f38 100755 --- a/init/init-lib.pl +++ b/init/init-lib.pl @@ -1491,6 +1491,24 @@ local $out = &backquote_logged("$rc->{'file'} forcestop 2>&1 {'name'} eq $name } @rcs; +if ($rc) { + &lock_rc_files(); + &disable_rc_script($in{'name'}); + &unlock_rc_files(); + &unlink_logged($rc->{'file'}); + } +} + =head2 lock_rc_files Internal function to lock all FreeBSD rc.conf files. diff --git a/init/save_rc.cgi b/init/save_rc.cgi index 013e4572b..2d1f625f3 100755 --- a/init/save_rc.cgi +++ b/init/save_rc.cgi @@ -14,9 +14,7 @@ if (!$in{'new'}) { if ($in{'delete'}) { # Delete the action script - &lock_file($rc->{'file'}); - unlink($rc->{'file'}); - &unlock_file($rc->{'file'}); + &delete_rc_script($in{'name'}); &webmin_log("delete", "action", $in{'name'}); &redirect(""); } diff --git a/init/save_upstart.cgi b/init/save_upstart.cgi index 4b9dad3d5..cdae3c13e 100644 --- a/init/save_upstart.cgi +++ b/init/save_upstart.cgi @@ -18,7 +18,8 @@ if (!$in{'new'}) { if ($in{'delete'}) { # Delete the service &disable_at_boot($in{'name'}); - &delete_upstat_service($in{'name'}); + &stop_upstart_service($in{'name'}); + &delete_upstart_service($in{'name'}); &webmin_log("delete", "upstart", $in{'name'}); } elsif ($in{'new'}) {