#!/usr/bin/perl -w use strict; my ( $search, $print ); if ( scalar @ARGV ) { if ( $ARGV[0] =~ /start/i ) { $search='^([^:]+):.*chkconfig:\s*[\d-]+\s+(\d+)\s+\d+\s*$'; $print='S%02u%s'; } elsif ( $ARGV[0] =~ /stop/i ) { $search='^([^:]+):.*chkconfig:\s*[\d-]+\s+\d+\s+(\d+)\s*$'; $print='K%02u%s'; } else { print STDERR "Usage: $0 {start|stop}\n"; exit 1; } } else { print STDERR "Usage: $0 {start|stop}\n"; exit 1; } chdir "/etc/init.d"; my @foo = split "\n", `grep chkconfig: *`; my @bar = (); foreach my $i ( 0 .. $#foo ) { $foo[$i] =~ /$search/; die "choked on $foo[$i]\n" unless defined $1; $bar[$i] = sprintf $print, $2, $1; } my @baz = sort @bar; print join "\n", @baz; print "\n";