タイトルが示すように、bashスクリプトで実行されたときにC ++プログラムにシグナル、警告、メッセージなどを送信できるようにしたいです。スクリプトはパラメータを使用してプログラムを起動するいくつかの解決策を見ましたが、プログラムがすでに実行されているときに発生する必要があります。これを行う方法はありますか?デフォルトでは、スクリプトがバックグラウンドで実行されている間にエラーが発生した場合は、OSのどこかに書き込まれるのではなく、プログラムに直接報告されることを望みます。私はRed Hat 8を使用しています。
ありがとう
ベストアンサー1
信号を送る:
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/signal
#include <csignal>
void signal_handler(int signal);
// Install a signal handler
std::signal(SIGINT, signal_handler);