|
@@ -34,18 +34,14 @@ ProgMon::~ProgMon()
|
|
unsigned int i;
|
|
unsigned int i;
|
|
for(i=0;i<mvectorprog.size();i++)
|
|
for(i=0;i<mvectorprog.size();i++)
|
|
{
|
|
{
|
|
- if(mvectorprog[i].mProcess != 0)
|
|
|
|
|
|
+ if((mvectorprog[i].mProcess != 0)&&(mvectorprog[i].mbRun))
|
|
{
|
|
{
|
|
- mvectorprog[i].mProcess->terminate();
|
|
|
|
- // mvectorprog[i].mProcess->close();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- QThread::msleep(300);
|
|
|
|
- for(i=0;i<mvectorprog.size();i++)
|
|
|
|
- {
|
|
|
|
- if(mvectorprog[i].mProcess != 0)
|
|
|
|
- {
|
|
|
|
- mvectorprog[i].mProcess->kill();
|
|
|
|
|
|
+ ProgUnit * pu = &mvectorprog[i];
|
|
|
|
+ std::cout<<" stop launch "<<pu->strcmd<<std::endl;
|
|
|
|
+ QProcess * pproc = new QProcess(this);
|
|
|
|
+ pproc->start("cyber_launch",QStringList() << "stop"<<pu->strcmd.data());
|
|
|
|
+ pproc->waitForFinished();
|
|
|
|
+ pu->mProcess->waitForFinished();
|
|
// mvectorprog[i].mProcess->close();
|
|
// mvectorprog[i].mProcess->close();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -261,9 +257,12 @@ void ProgMon::onProcessStarted()
|
|
{
|
|
{
|
|
if(proc == mvectorprog.at(i).mProcess)
|
|
if(proc == mvectorprog.at(i).mProcess)
|
|
{
|
|
{
|
|
|
|
+ std::cout<<" Process Started."<<std::endl;
|
|
mvectorprog.at(i).mbRun = true;
|
|
mvectorprog.at(i).mbRun = true;
|
|
#ifdef IV_OS_UNIX
|
|
#ifdef IV_OS_UNIX
|
|
- mvectorprog.at(i).mpid = proc->processId();
|
|
|
|
|
|
+ // mvectorprog.at(i).mpid = proc->processId();
|
|
|
|
+ mvectorprog.at(i).mpid_launch = proc->processId();
|
|
|
|
+ std::cout<<" process id: "<<proc->processId()<<std::endl;
|
|
// mvectorprog.at(i).mpid = proc->pid();
|
|
// mvectorprog.at(i).mpid = proc->pid();
|
|
#endif
|
|
#endif
|
|
#ifdef IV_OS_WIN
|
|
#ifdef IV_OS_WIN
|
|
@@ -349,6 +348,7 @@ void ProgMon::onReadStandardError()
|
|
void ProgMon::onProcessEnd()
|
|
void ProgMon::onProcessEnd()
|
|
{
|
|
{
|
|
qDebug("process end.");
|
|
qDebug("process end.");
|
|
|
|
+ return;
|
|
QProcess * proc = (QProcess *)sender();
|
|
QProcess * proc = (QProcess *)sender();
|
|
int nsize = mvectorprog.size();
|
|
int nsize = mvectorprog.size();
|
|
int i;
|
|
int i;
|
|
@@ -531,9 +531,17 @@ void ProgMon::StartProc(ProgUnit *pu)
|
|
}
|
|
}
|
|
pu->mProcess = new QProcess(this);
|
|
pu->mProcess = new QProcess(this);
|
|
|
|
|
|
|
|
+ connect(pu->mProcess,SIGNAL(started()),this,SLOT(onProcessStarted()));
|
|
|
|
+ connect(pu->mProcess,SIGNAL(finished(int)),this,SLOT(onProcessEnd()));
|
|
|
|
+
|
|
pu->mProcess->start("cyber_launch",QStringList() << "start"<<pu->strcmd.data());
|
|
pu->mProcess->start("cyber_launch",QStringList() << "start"<<pu->strcmd.data());
|
|
pu->state = 1;
|
|
pu->state = 1;
|
|
|
|
|
|
|
|
+ pu->mpid = 0;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
// ivlog->info("start program: AppGroup - %s; AppDir - %s; AppName - %s; StartArgs - %s;", pu->strgroup.c_str(), pu->strappdir.c_str(), pu->strappname.c_str(), pu->strargs.c_str());
|
|
// ivlog->info("start program: AppGroup - %s; AppDir - %s; AppName - %s; StartArgs - %s;", pu->strgroup.c_str(), pu->strappdir.c_str(), pu->strappname.c_str(), pu->strargs.c_str());
|
|
|
|
|
|
@@ -556,6 +564,7 @@ void ProgMon::StopProc(ProgUnit *pu)
|
|
std::cout<<" stop launch "<<pu->strcmd<<std::endl;
|
|
std::cout<<" stop launch "<<pu->strcmd<<std::endl;
|
|
pu->mProcess = new QProcess(this);
|
|
pu->mProcess = new QProcess(this);
|
|
pu->mProcess->start("cyber_launch",QStringList() << "stop"<<pu->strcmd.data());
|
|
pu->mProcess->start("cyber_launch",QStringList() << "stop"<<pu->strcmd.data());
|
|
|
|
+ pu->mbRun = false;
|
|
}
|
|
}
|
|
|
|
|
|
void ProgMon::ForceStopProc(ProgUnit *pu){
|
|
void ProgMon::ForceStopProc(ProgUnit *pu){
|
|
@@ -669,6 +678,7 @@ void ProgMon::run()
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ std::cout<<"ProgMon Thread Exit."<<std::endl;
|
|
}
|
|
}
|
|
|
|
|
|
void ProgMon::setquit()
|
|
void ProgMon::setquit()
|