先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也先帝は天下を興す志半ばにして志半ばにして崩御されました。今、天下は三つに分かれ、益州は疲弊しており、まさに存亡の危機に瀕しております。しかしながら、宮中で職務に励む臣下や、外地で身を顧みず尽力する志士たちがいるのは、ひとえに先帝から受けた格別な恩義を思い、陛下に報いようとする志があるからです。今こそ陛下には広く臣下の意見に耳を傾け、先帝の遺徳を輝かせ、志士たちの士気を高めるべきです。決して自らを卑下したり、不適切な例えを用いて忠言の道を閉ざしたりしてはなりません。鍏堝笣鍒涗笟鏈崐鑰屼腑閬撳穿娈傦紝浠婂ぉ涓嬩笁鍒嗭紝鐩婂窞鐤插紛锛屾璇氬嵄鎬ュ瓨浜′箣绉嬩篃銆傜劧渚嶅崼涔嬭嚕涓嶆噲浜庡唴锛屽繝蹇椾箣澹繕韬簬澶栬€咃紝鐩栬拷鍏堝笣涔嬫畩閬囷紝娆叉姤涔嬩簬闄涗笅涔熴€傝瘹瀹滃紑寮犲湥鍚紝浠ュ厜鍏堝笣閬楀痉锛屾仮寮樺織澹箣姘旓紝涓嶅疁濡勮嚜鑿茶杽锛屽紩鍠诲け涔夛紝浠ュ蹇犺皬涔嬭矾涔
Current path: usr/local/cpanel/scripts/
#!/usr/local/cpanel/3rdparty/bin/perl
# cpanel - scripts/cleanupinterchange Copyright 2022 cPanel, L.L.C.
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
package scripts::cleanupinterchange;
use strict;
use warnings;
use Cpanel::FileUtils::Lines ();
use Cpanel::FileUtils::Modify ();
use Cpanel::ServerTasks ();
use Getopt::Long;
use Pod::Usage;
use Try::Tiny;
our $INTERCHANGE_FILE = '/etc/chkserv.d/interchange';
our $INTERCHANGE_RESTART_FILE = '/var/run/chkservd/restart_track/interchange';
our $CHKSERVD_CONF_FILE = '/etc/chkserv.d/chkservd.conf';
sub new {
my $pkg = shift;
my $self = {};
bless $self, $pkg;
return $self;
}
sub as_script {
my $self = shift;
my $execute = 0;
my $help = 0;
Getopt::Long::GetOptions(
'x' => \$execute,
'help' => \$help,
);
if ($help) {
Pod::Usage::pod2usage(
-verbose => 2,
-exitval => 1,
);
}
if ( not $execute ) {
my $msg = qq{To execute, use the -x flag.};
die($msg);
}
$self->run();
return 1;
}
sub run {
my $self = shift;
my $restart_tailwatchd;
if ( -e $INTERCHANGE_FILE ) {
unlink($INTERCHANGE_FILE);
++$restart_tailwatchd;
}
if ( -e $INTERCHANGE_RESTART_FILE ) {
unlink($INTERCHANGE_RESTART_FILE);
}
if ( -e $CHKSERVD_CONF_FILE ) {
if ( Cpanel::FileUtils::Lines::has_txt_in_file( $CHKSERVD_CONF_FILE, 'interchange' ) ) {
Cpanel::FileUtils::Modify::remlinefile( $CHKSERVD_CONF_FILE, 'interchange:', 'begin' );
++$restart_tailwatchd;
}
}
if ($restart_tailwatchd) {
local $@;
try {
Cpanel::ServerTasks::queue_task( ['TailwatchTasks'], 'reloadtailwatch' );
}
catch {
warn "There was an error restarting tailwatchd: $_";
};
}
return 0;
}
if ( not caller() ) {
my $cleanup = scripts::cleanupinterchange->new();
$cleanup->as_script;
exit 0;
}
1;
__END__
=head1 NAME
cleanupinterchange - cleans up cruft left over from the interchange removal
=head1 SYNOPSIS
cleanup_interchange [options]
Options:
-help print help message
-x execute the change
=head1 DESCRIPTION
In cPanel & WHM version 11.34, we removed Interchange, but small remnants
were left behind. This script cleans up that clutter. If the remnants have
already been removed, this script does nothing.
=cut