MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //scripts.20110531.215904.25158/restartsrv_imap
#!/usr/bin/perl
# cpanel - restartsrv_imap                        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::CleanupStub ();
use Cpanel::OSSys       ();
use strict;

eval {
    local $SIG{'__DIE__'};
    require Cpanel::Rlimit;
    Cpanel::Rlimit::set_rlimit_to_infinity();
};

my %CPCONF = loadcpconfig();

if ( $CPCONF{'maildir'} ne '1' ) {
    exec '/scripts/restartsrv_inetd', @ARGV;
}

if ( $CPCONF{'mailserver'} eq 'dovecot' ) {
    exec '/scripts/restartsrv_dovecot', @ARGV;
}

# Courier IMAP restart only

setuppath();

my ( $system, $nodename, $release, $version, $machine ) = Cpanel::OSSys::uname();
my ( $restart, $check, $status ) = parseargv();

my $iscript      = '';
my $authiscript  = '';
my $authservice  = 'authdaemond';
my $service      = 'couriertcpd';
my $processowner = 'root';
my $disabled     = 0;

my @iscripts;
if ( $system =~ /freebsd/i ) {
    @iscripts = qw( /usr/local/etc/rc.d/courier-authdaemond
      /usr/local/etc/rc.d/courier-authdaemond.sh
      /usr/local/etc/rc.d/courier-imap-imapd-ssl.sh
      /usr/local/etc/rc.d/courier-imap-imapd.sh
      /usr/local/etc/rc.d/courier-imap-pop3d-ssl.sh
      /usr/local/etc/rc.d/courier-imap-pop3d.sh
      /usr/local/etc/rc.d/courier-imap-imapd-ssl
      /usr/local/etc/rc.d/courier-imap-imapd
      /usr/local/etc/rc.d/courier-imap-pop3d-ssl
      /usr/local/etc/rc.d/courier-imap-pop3d
    );

    # /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 {
    @iscripts = qw( /etc/init.d/courier-imap /etc/init.d/courier-authlib );
}

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('dovecot');
    doomedprocess('dovecot-auth');
    doomedprocess('imap-login');
    doomedprocess('pop3-login');

    doomedprocess($authservice);
    doomedprocess($service);
    nooutputsystem(qw(/usr/local/cpanel/etc/init/kill_apps_on_ports 110 993 995 143));

    if ( $restart != -1 ) {
        if ( my $pid = fork() ) {
            waitpid( $pid, 0 );
        }
        else {
            Cpanel::OSSys::setsid();
            Cpanel::CleanupStub::daemonclosefds();
            foreach my $iscript (@iscripts) {
                next if ( !-x $iscript || -B $iscript );
                nooutputsystem( $iscript, 'start' );
            }
            exit 0;
        }
    }

    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 );
        print check_service( 'service' => $authservice, 'user' => $processowner );
    }
}
elsif ($check) {
    exit if ($disabled);
    if ( check_service( 'service' => $service, 'user' => $processowner ) eq '' ) {
        print "$service is not running\n";
    }
    if ( check_service( 'service' => $authservice, 'user' => $processowner ) eq '' ) {
        print "$authservice is not running\n";
    }
}