#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - scripts/restartsrv_inetd 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 use cPstrict; use Cpanel::RestartSrv (); use Cpanel::RestartSrv::Lock (); use Cpanel::Services::Enabled (); use Cpanel::OS (); use Cpanel::Exception (); eval { local $SIG{'__DIE__'}; require Cpanel::Rlimit; Cpanel::Rlimit::set_rlimit_to_infinity(); }; Cpanel::RestartSrv::setuppath(); my ( $action, $check, $status ) = Cpanel::RestartSrv::parseargv(); my $iscript = ''; my $initdir = ''; my $service = 'xinetd'; my $processowner = 'root'; my $overridercconf = ''; my $manualstart = 0; my $servicebin = ''; my $serviceflags = ''; my $disabled = 0; if ( !Cpanel::OS::supports_inetd() ) { die Cpanel::Exception::create( 'Services::Deprecated', [ service => $service ] )->to_string . "\n"; } $disabled = scalar grep { !Cpanel::Services::Enabled::is_enabled($_) } qw(inetd xinetd); $iscript = Cpanel::RestartSrv::getinitfile($service); my $installed = $iscript ? 1 : 0; if ( $action && !$disabled ) { die Cpanel::Exception::create( 'Services::NotInstalled', [ service => $service ] ) if !$installed; my $lock = Cpanel::RestartSrv::Lock->new($service); Cpanel::RestartSrv::nooutputsystem( $iscript, 'stop' ); Cpanel::RestartSrv::doomedprocess($service); if ( $action != $Cpanel::RestartSrv::STOP ) { Cpanel::RestartSrv::logged_startup( $service, 1, [ $iscript, 'start' ] ); } $lock->release() if $lock; } elsif ($status) { #--status (show ps) if ($disabled) { print "$service is disabled\n"; } else { die Cpanel::Exception::create( 'Services::NotInstalled', [ service => $service ] ) if !$installed; print Cpanel::RestartSrv::check_service( 'service' => $service, 'user' => $processowner, 'pidfile' => '/var/run/' . $service . '.pid' ); } } elsif ($check) { exit if ($disabled); die Cpanel::Exception::create( 'Services::NotInstalled', [ service => $service ] ) if !$installed; if ( Cpanel::RestartSrv::check_service( 'service' => $service, 'user' => $processowner, 'pidfile' => '/var/run/' . $service . '.pid' ) eq '' ) { print "$service is not running\n"; } }