c++ signal實現(xiàn)發(fā)送信號
1. 首先了解獲取指定進程名的PID:
bash中獲取: ps -aux | grep xxx | grep -v grep | awk '{print $2}' // xxx 表示進程名
這里需要注意,使用ps -ef 或者ps aux , 存在grep 的輸出,因為grep 命令也會啟動bash,因此輸出時,會看到grep 的進程,因為需要再次通過 grep -v 去除grep 的輸出
2. c++ 中實現(xiàn)
#include <iostream> #include <string> #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <signal.h> void DoCmdGetPid(const std::string& cmd, std::string& stringPid) { FILE *pFile = popen(cmd.c_str(), "r"); char *buff = new char[256]; memset(buff, 0, sizeof(buff)); fread(buff, 1, sizeof(buff), pFile); stringPid = buff; pclose(pFile); delete[] buff; } void SendSig() { const std::string& procName = "recv"; std::string cmd = "ps -a | grep " + procName + " |grep -v grep | awk '{print $2}'"; std::string strPid; DoCmdGetPid(cmd, strPid); if (strPid.empty()) { std::cout << "not process\n"; return; } // 通過kill 函數(shù)發(fā)送信號 kill(std::stoi(strPid), 38); return; } int main() { while (1) { SendSig(); sleep(5); } return 0; }
到此這篇關(guān)于c++ signal實現(xiàn)發(fā)送信號的文章就介紹到這了,更多相關(guān)c++ signal發(fā)送信號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c語言根據(jù)用戶輸入的出生年份并計算出當(dāng)前年齡
這篇文章主要介紹了c語言根據(jù)用戶輸入的出生年份并計算出當(dāng)前年齡,需要的朋友可以參考下2023-03-03VS2017+Qt5+Opencv3.4調(diào)用攝像頭拍照并存儲
本文主要介紹了VS2017+Qt5+Opencv3.4調(diào)用攝像頭拍照并存儲,實現(xiàn)了視頻,拍照,保存這三個功能。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05C語言左旋轉(zhuǎn)字符串與翻轉(zhuǎn)字符串中單詞順序的方法
這篇文章主要介紹了C語言左旋轉(zhuǎn)字符串與翻轉(zhuǎn)字符串中單詞順序的方法,給出了相關(guān)的兩道算法題目作為例子,需要的朋友可以參考下2016-02-02