diff options
Diffstat (limited to 'init/signal_handler.cpp')
-rw-r--r-- | init/signal_handler.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/init/signal_handler.cpp b/init/signal_handler.cpp index 39a466dee..68931632f 100644 --- a/init/signal_handler.cpp +++ b/init/signal_handler.cpp @@ -136,7 +136,14 @@ static bool wait_for_one_process() { struct listnode* node; list_for_each(node, &svc->onrestart.commands) { command* cmd = node_to_item(node, struct command, clist); - cmd->func(cmd->nargs, cmd->args); + std::vector<std::string> arg_strs; + if (expand_command_arguments(cmd->nargs, cmd->args, &arg_strs)) { + std::vector<char*> args; + for (auto& s : arg_strs) { + args.push_back(&s[0]); + } + cmd->func(args.size(), &args[0]); + } } svc->NotifyStateChange("restarting"); return true; |