Bash
如何從 Bash 腳本向 C++ 程序發送信號或數據
正如標題所述,我希望能夠在從 bash 腳本執行時向 C++ 程序發送信號、警報、消息或其他內容。我見過一些解決方案,其中腳本將使用參數啟動程序,但我需要它在程序已經啟動並執行時發生。有沒有辦法做到這一點?基本上,如果發生錯誤,腳本在後台執行,我希望它直接報告給程序,而不是記錄在作業系統的某個地方。我正在使用紅帽 8。
謝謝
發送信號:
kill -s signal -- pid_of_your_app
signal - 是要發送的信號。它可以作為名稱或數字給出。
發送數據:
echo "text_message" | your_app
或者
cat file | your_app
| - 是管道,它將一個命令的標準輸出發送到程序的標準輸入
更新:
關於信號處理,您的應用程序需要處理信號,因為預設情況下它只會退出(您可以為除 kill(9) 之外的任何信號分配處理程序) https://en.cppreference.com/w/cpp/utility/program /信號
#include <csignal> void signal_handler(int signal); // Install a signal handler std::signal(SIGINT, signal_handler);