File: //proc/self/root/scripts.20110531.215904.25158/restartsrv_dovecot
#!/usr/bin/perl
# cpanel - restartsrv_dovecot Copyright(c) 2010 cPanel, Inc.
# All rights Reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
BEGIN { unshift @INC, '/usr/local/cpanel', '/scripts'; }
use RestartSrv;
use Cpanel::OSSys ();
use strict;
eval {
local $SIG{'__DIE__'};
require Cpanel::Rlimit;
Cpanel::Rlimit::set_rlimit_to_infinity();
};
my %CPCONF = loadcpconfig();
if ( $CPCONF{'mailserver'} ne 'dovecot' ) {
exit;
}
my ( $system, $nodename, $release, $version, $machine ) = Cpanel::OSSys::uname();
my ( $restart, $check, $status ) = parseargv();
my $iscript = '';
my $authiscript = '';
my $service = 'dovecot';
my $processowner = 'root';
my $disabled = 0;
my @iscripts = ();
if ( $system =~ /freebsd/i ) {
push @iscripts, '/usr/local/etc/rc.d/dovecot', '/usr/local/etc/rc.d/dovecot.sh';
# /etc/rc.conf needs the following:
#courier_imap_imapd_enable="YES"
#courier_imap_imapd_ssl_enable="YES"
#courier_imap_pop3d_ssl_enable="YES"
#courier_imap_pop3d_enable="YES"
#courier_authdaemond_enable="YES"
}
else {
push @iscripts, '/etc/init.d/dovecot';
}
if ( -e '/etc/cpimapdisable'
|| -e '/etc/imapdisable'
|| -e '/etc/imapddisable' ) {
$disabled = 1;
}
if ( $restart && !$disabled ) {
my $lock_file = '/var/run/restartsrv_imap.lock';
lock_file($lock_file);
foreach my $iscript (@iscripts) {
next if ( !-x $iscript || -B $iscript );
nooutputsystem( $iscript, 'stop' );
}
doomedprocess('authProg');
doomedprocess('authdaemond');
doomedprocess('imapd');
doomedprocess('pop3d');
doomedprocess('couriertls');
doomedprocess('couriertcpd');
doomedprocess($service);
doomedprocess('imap-login');
doomedprocess('pop3-login');
nooutputsystem(qw(/usr/local/cpanel/etc/init/kill_apps_on_ports 110 993 995 143));
if ( $restart != -1 ) {
foreach my $iscript (@iscripts) {
next if ( !-x $iscript || -B $iscript );
nooutputsystem( $iscript, 'start' );
}
}
unlink $lock_file if -e $lock_file;
}
elsif ($status) {
#--status (show ps)
if ($disabled) {
print "$service is disabled\n";
}
else {
print check_service( 'service' => $service, 'user' => $processowner );
}
}
elsif ($check) {
exit if ($disabled);
my $process_info = check_service( 'service' => $service, 'user' => $processowner );
if ( $process_info !~ /\Q$service\E/m ) {
print "$service is not running\n";
}
}