# 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);
+ }
return (!$?, $out);
}
+=head2 delete_rc_script(name)
+
+Delete the FreeBSD RC script with some name
+
+=cut
+sub delete_rc_script
+{
+local ($name) = @_;
+my @rcs = &list_rc_scripts();
+my ($rc) = grep { $_->{'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.
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("");
}
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'}) {