通过脚本向指定的进程发送信号SIGUSR1
#!/bin/sh
ps | grep application_name | grep -v grep | awk '{print $1}' | xargs kill -SIGUSR1
所对应的C++代码,用来实现在接收到SIGUSR1的时候,程序退出
#include <csignal>
#include <iostream>
#include "applicationMain.h"
bool stopFlag;
void stopMainServer(int signal)
{
stopFlag = true;
}
int main()
{
stopFlag = false;
std::signal(SIGUSR1, stopMainServer);
applicationMain main_proc;
main_proc.startMain();
while(true) {
sleep(1);
if (stopFlag)
{
break;
}
}
// TODO: Add shutdown signal/event to stop mock-server.
main_proc.stopMocks();
std::cout << "Stop the Main Server" << std::endl;
return 0;
}
当主程序因为异常而退出时,这段程序可能会产生孤儿进程。
C++可以接收以下信号