Linuxでuinput http://thiemonge.org/getting-started-with-uinputを使用しているときに、仮想入力デバイスを作成するプロセスがデフォルトで終了すると、開いているファイルディスクリプタがすべて解放されるという特有のケースがあります。linuxがプログラム終了時にファイルディスクリプタを閉じるのを防ぐ
この場合、作成された仮想入力デバイスも解放され、デバイスのフラットアウトは/ dev/inputから消えます。
私は、この問題の簡単な解決策があるかどうか疑問に思っています。最も明らかなのは、プログラムの終了時に開いているファイルディスクリプタを解放しないことです。単にFDを保持するためにプロキシプロセスを生成するために厄介なもの。
プログラムが終了すると、開いているファイルディスクリプタはすべて閉じられます。期間。 –
上記と同様。しかし、ファイル記述子はフォークによって作成された子プロセスに継承されます。親が出て行くと、子供には開いたままになります。 – TrentP
仮想デバイスを作成したプログラムを終了した後に、その仮想デバイスを保持したいのはなぜですか?それを作成するプログラムは、(fdが別のプロセスに渡されない限り)デバイスにイベントを注入するために必要な 'fd 'を持つ唯一のものです。それがなくなると、それ以上イベントが発生することはなく、仮想デバイスには使用できなくなります。 – kaylum