spectrum2_manager can start/stop particular instances
This commit is contained in:
parent
ef259f4aef
commit
c83794bb38
1 changed files with 21 additions and 4 deletions
|
@ -118,7 +118,7 @@ static int isRunning(const std::string &pidfile) {
|
|||
return boost::lexical_cast<int>(pid);
|
||||
}
|
||||
|
||||
static void start_all_instances(ManagerConfig *config) {
|
||||
static void start_instances(ManagerConfig *config, const std::string &_jid = "") {
|
||||
path p(CONFIG_STRING(config, "service.config_directory"));
|
||||
|
||||
try {
|
||||
|
@ -160,6 +160,10 @@ static void start_all_instances(ManagerConfig *config) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!_jid.empty() && _jid != vhost) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int pid = isRunning(CONFIG_STRING(&vhostCfg, "service.pidfile"));
|
||||
if (pid == 0) {
|
||||
std::cout << "Starting " << itr->path() << ": OK\n";
|
||||
|
@ -178,7 +182,7 @@ static void start_all_instances(ManagerConfig *config) {
|
|||
}
|
||||
}
|
||||
|
||||
static void stop_all_instances(ManagerConfig *config) {
|
||||
static void stop_instances(ManagerConfig *config, const std::string &_jid = "") {
|
||||
path p(CONFIG_STRING(config, "service.config_directory"));
|
||||
|
||||
try {
|
||||
|
@ -212,6 +216,10 @@ static void stop_all_instances(ManagerConfig *config) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!_jid.empty() && _jid != vhost) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int pid = isRunning(CONFIG_STRING(&vhostCfg, "service.pidfile"));
|
||||
if (pid) {
|
||||
std::cout << "Stopping " << itr->path() << ": OK\n";
|
||||
|
@ -547,10 +555,10 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
if (command[0] == "start") {
|
||||
start_all_instances(&config);
|
||||
start_instances(&config);
|
||||
}
|
||||
else if (command[0] == "stop") {
|
||||
stop_all_instances(&config);
|
||||
stop_instances(&config);
|
||||
}
|
||||
else if (command[0] == "status") {
|
||||
return show_status(&config);
|
||||
|
@ -570,6 +578,15 @@ int main(int argc, char **argv)
|
|||
command.erase(command.begin());
|
||||
std::string cmd = boost::algorithm::join(command, " ");
|
||||
|
||||
if (cmd == "start") {
|
||||
start_instances(&config, jid);
|
||||
return 0;
|
||||
}
|
||||
else if (cmd == "stop") {
|
||||
stop_instances(&config, jid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ask_local_server(&config, networkFactories, jid, cmd);
|
||||
// std::string message = command;
|
||||
// m = &message;
|
||||
|
|
Loading…
Add table
Reference in a new issue