#!/usr/bin/perl -w
use strict;
use warnings;
my @ps0 = qx(ps -ef |grep java);
my $ps1 = qx(ps -ef |grep java);
my $hbp_pid ;
my $hpc_pid;
#print $ps1 ;
print "HBP 和 HPC 服务启动情况:\n";
foreach (@ps0){
if($_=~m(Hansky/HBP/Server/bin/butterfly.xml$)){
my @arr = split/\s+/,$_;
$hbp_pid =$arr[1];
print "HBP服务已经启动,PID: $hbp_pid \n";
}
elsif($_=~m(Hansky/HDS/bin/start.xml$)) {
my @arr = split/\s+/,$_;
$hpc_pid =$arr[1];
print "HPC服务已经启动,PID: $hpc_pid \n";
}
}
if( defined $hpc_pid ){
print "开始停止HPC服务.......\n";
qx(kill $hpc_pid);
sleep(1);
my $stophbp =qx(ps -ef |grep $hpc_pid);
if(!($stophbp =~m(Hansky/HDS/bin/start.xml$))){ print "HPC服务停止成功\n";}
else { die "HPC服务停止失败\n";}
}
print "开始启动HPC服务.....";
chdir("/usr/Hansky/HDS/bin");
sleep(2);
my $starthpc = qx(nohup ./pcd > pcd.log 2>&1 &);
my $flag = 0;
if($starthpc eq "") { $flag=1; } else {print "HPC服务启动失败!\n";}
sleep(2);
my @ps1 = qx(ps -ef |grep java);
my $newHPCpid ;
foreach (@ps1){
if($_=~m(Hansky/HDS/bin/start.xml$)){
my @arr = split/\s+/,$_;
$newHPCpid =$arr[1];
last;
}
}
if( $flag == 1 && defined $newHPCpid){ print "HPC服务启动成功,PID:$newHPCpid \n";}
else { print "HPC服务启动失败!\n"}
#/usr/Hansky/HBP/Server/bin # nohup ./bfd > ./bfd.log 2>&1 &
#/usr/Hansky/HDS/bin # nohup ./pcd > pcd.log 2>&1 &