私はアプリケーションを開発していますが、必要に応じていくつかのランタイム統計をコンソールに出力したいと考えています。killすぐに信号が浮かんできました。
WikiでUnixシグナルを読むSIGINFOことは、次の理由で進むべき道のようです。
- それはされて意図これらの目的のために
- シグナルハンドラが実装されていない場合はプロセスを終了しません(逆に
SIGUSRx- ここを参照)
ただし、の出力を調べるkill -lと、サーバーにこの信号が実装されていないようです。
私の質問は:
- なぜ
SIGINFO私のシステムにはないのですか?すべてのGNU Linuxシステムに存在しませんか? - この信号を有効にする簡単な方法(つまり、カーネル/ glibc再コンパイルなし)はありますか?ない場合、難しい方法は何ですか?
- ターゲットプロセスで処理されない場合に副作用を引き起こさない、目的に使用できる代替シグナルは何ですか?(glibcのマニュアルで他の適切な信号を見つけることができなかったので、私はすでに何も想定していません)
Linuxメタ情報:
Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux
更新:なぜこの信号が条件付きでBSD以外のシステムから除外されるのかについての詳細をまだ探しています(以下のコメントを参照)。信号は多くの目的に非常に役立つようですので、それがただの気まぐれの問題であると私が信じるのは難しいです-それで、この信号がLinuxで利用可能になる本当のショートッパーは何ですか?
dd私のMac での説明された動作を誤解したに違いありません。Linuxマシンでは実行^T中にdd何も実行されません-私はそれに応じて質問を更新します。
^Tの出力に表示されますかstty -a?