Edit File: vps_optimizer
#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - vps_optimizer Copyright 2014 cPanel, Inc. # All rights Reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited use strict; use Cpanel::FileUtils::TouchFile (); use Cpanel::LoadFile (); use Cpanel::OSSys (); use Cpanel::Config::Services (); use Cpanel::Config::LoadCpConf (); my @VER; my @OPTS; foreach my $arg (@ARGV) { if ( $arg =~ /^-/ ) { push @OPTS, $arg; } else { push @VER, $arg; } } my $version = '1.8'; exit 1 if !-e '/usr/local/cpanel/cpkeyclt'; if ( !-e '/var/cpanel/envtype' ) { system '/usr/local/cpanel/cpkeyclt'; if ( !-e '/var/cpanel/envtype' ) { die "Problem verifying license information"; } } my $envtype = Cpanel::LoadFile::loadfile('/var/cpanel/envtype'); exit if ( $envtype && $envtype eq 'standard' ); exit if ( -e '/var/cpanel/vps_optimized/' . $version && !grep( /force/, @OPTS ) ); print "Enabling conserve_memory options..."; Cpanel::FileUtils::TouchFile::touchfile('/var/cpanel/conserve_memory'); print "Done\n"; my $cpconf = Cpanel::Config::LoadCpConf::loadcpconf(); if ( Cpanel::Config::Services::service_enabled('spamd') ) { require Cpanel::StringFunc::File; Cpanel::FileUtils::TouchFile::touchfile('/etc/cpspamd.conf'); print "Switching spamassassin max spare to 1...."; Cpanel::StringFunc::File::remlinefile( '/etc/cpspamd.conf', 'maxspare=1' ); Cpanel::StringFunc::File::addlinefile( '/etc/cpspamd.conf', 'maxspare=1' ); print "Done\n"; print "Switching spamassassin max children to 3...."; Cpanel::StringFunc::File::remlinefile( '/etc/cpspamd.conf', 'maxchildren=3' ); Cpanel::StringFunc::File::addlinefile( '/etc/cpspamd.conf', 'maxchildren=3' ); print "Done\n"; print "Restarting spamassassin...."; if ( my $pid = fork() ) { waitpid( $pid, 0 ); } else { require Cpanel::CleanupStub; chdir '/'; Cpanel::OSSys::setsid(); Cpanel::CleanupStub::daemonclosefds(); exec '/usr/local/cpanel/scripts/restartsrv_spamd'; die "Failed to restart spamd."; # in case the exec fails } print "Done\n"; } if ( !grep( /skipstartup/, @OPTS ) ) { print "Restarting Services...."; if ( my $pid = fork() ) { waitpid( $pid, 0 ); } else { require Cpanel::CleanupStub; chdir '/'; Cpanel::OSSys::setsid(); Cpanel::CleanupStub::daemonclosefds(); system '/usr/local/cpanel/scripts/restartsrv_exim'; system '/usr/local/cpanel/scripts/restartsrv_imap'; system '/usr/local/cpanel/scripts/restartsrv_chkservd'; exit; # no need to restart cpanel here -- could be a problem with upcp in whm anyways # # #exec '/usr/local/cpanel/startup'; } print "Done\n"; } if ( !-e '/var/cpanel/vps_optimized' ) { mkdir( '/var/cpanel/vps_optimized', 0700 ); } Cpanel::FileUtils::TouchFile::touchfile("/var/cpanel/vps_optimized/$version"); print "Optimizations Complete!\n"; sub sqlcmd { my ($cmd) = @_; my $result; require Cpanel::DbUtils; require IPC::Open3; my $mysql = Cpanel::DbUtils::find_mysql(); my $pid = IPC::Open3::open3( \*WTRFH, \*RDRFH, ">&STDERR", $mysql, '-N' ); print WTRFH "show status like 'uptime'; $cmd\n"; #make sure we already get something back so we know mysql is up close(WTRFH); while (<RDRFH>) { $result .= $_; } close(RDRFH); waitpid( $pid, 0 ); return $result; }