40 lines
		
	
	
		
			863 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			863 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
| #! /usr/bin/perl
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| use DirHandle;
 | |
| my $d = DirHandle->new("/etc/rc7.d");
 | |
| 
 | |
| my @d =
 | |
|     sort { $a->{order} cmp $b->{order} }
 | |
|     map { /^S(\d+)([\w\-.]+)/ ; { name => $2 , order => $1 } }
 | |
|     grep { /^S/ } $d->read;
 | |
| 
 | |
| my $equivalent = {'oidentd'=> 'identd',
 | |
|                 'nut'=> 'ups',
 | |
|                 'raidmonitor' => 'mdmonitor'
 | |
|                 };
 | |
| 
 | |
| 
 | |
| foreach my $service (@d)
 | |
| {
 | |
| my $sv=$service->{'name'};
 | |
| next if $sv eq 'bootstrap-console';
 | |
| $sv=  $equivalent->{$sv} || $sv;
 | |
| foreach (qw(multi-user sme-server))
 | |
| {
 | |
|   if (-e "/lib/systemd/system/$_.target.wants/$sv.service")
 | |
|   {
 | |
|     system(qw(systemctl disable), $sv);
 | |
|   }
 | |
|   elsif (-e "/etc/systemd/system/$_.target.wants/$sv.service")
 | |
|   {
 | |
|     system(qw(systemctl disable), $sv);
 | |
|   }
 | |
|   elsif (-e "/etc/init.d/$sv")
 | |
|   {
 | |
|     my $dropoutput = `/usr/sbin/chkconfig $sv off 2>/dev/null`;
 | |
|   }
 | |
| }
 | |
| }
 |