(UNIX)デーモンを書くときに標準入出力を閉じる必要があるのはなぜですか?デーモンを書くときに標準入出力を閉じなければならないのはなぜですか?
4
A
答えて
4
を閉じる標準出力/エラーですが、デーモン(および子)がどこに書き込むのかを確認する必要があります。出力をログファイルにリダイレクトするのが一般的です。
デーモン(および/または子)がユーザーからの入力を読み込もうとしないように、標準入力を閉じる必要があります。
setsid()
を使用して制御用TTYからデーモンをデタッチする場合、標準入力/出力/エラーはになります。
6
stdin、stdout、stderrだけでなく、開いているすべてのファイルを閉じる必要があります。
ページ、「UNIX環境における高度なプログラミング」、W.リチャードスティーヴンス、アディソン・Weseley、18日印刷、1999年から不要なファイルディスクリプタをクローズする必要があります。これにより、デーモンは親から継承した可能性のある記述子(シェルや他のプロセスかもしれない)をオープンしないようにします。
Stevens氏の提案では、最大ファイルディスクリプタを取得し、その値までのすべてのファイルを閉じます。
この章では、「デーモンプロセス」について説明します。ファイルディスクリプタを閉じることは、デーモンを書き込むときに5ポイントから1ポイントに過ぎないことに注意してください。
関連する問題
- 1. DisplayMemeberPathが標準プロパティを受け入れないのはなぜですか?
- 2. なぜ `loadFont`は入力ストリームを閉じませんか?私はそれを閉じなければならない?
- 3. なぜlinuxデーモンを書くときにttyから切り離さなければならないのですか?
- 4. 入力は、入力が、例えば、等しくなければならない
- 5. Mac OS X端末アプリケーションで標準入力が入力されていないのはなぜですか?
- 6. 標準がしばしば閉鎖されるのはなぜですか?
- 7. pythonサブプロセスが標準出力に書き込まない
- 8. Bluetoothchat Androidの入出力ストリームが閉じられていない
- 9. 標準出力と書き込み可能なストリームへのパイプ
- 10. LinuxでCで標準入力を閉じて開きます
- 11. マルチスレッド時に標準出力バッファをオフにするのはなぜですか?
- 12. ノードで標準入力から大きな入力を読み取る
- 13. ElementTree書き込み関数が標準出力に書き込まない
- 14. Android:Spinnerに標準のデザインがないのはなぜですか?
- 15. 「最初に閉じなければならないデータリーダーは既に開いています」というエラーが表示されるのはなぜですか?
- 16. C++は - コンソール出力を維持しながらファイルに標準出力/標準エラー出力を複製
- 17. なぜjQueryはW3C標準ではないのですか?
- 18. なぜデータフロープログラミングは標準ではないのですか?
- 19. 標準出力をファイルにリダイレクト+ ANT +コンソールに出力しない
- 20. 標準入力と出力でcshスクリプトで「No Match」エラーが発生するのはなぜですか?
- 21. 標準入力と標準出力を.Netでリダイレクトする
- 22. データベースに書き込まなければならない入力を保護する手順は?
- 23. 一度に入力して出力できないのはなぜですか?
- 24. Javaの標準入力から標準出力へのGZIP
- 25. Log4jがファイルまたは標準出力に出力しない
- 26. なぜpygameウィンドウが正しく閉じないのですか?
- 27. Cocoa-私のstatusItemをApplicationDelegateに入れなければならないのはなぜですか?
- 28. main()を専用のクラスに入れなければならないのはなぜですか?
- 29. 閉じる前にprint()を呼び出すと、Colorboxがすぐに閉じない - なぜですか?
- 30. ASP.NETブラウザを閉じるときにsession_endイベントが呼び出されないのはなぜですか?
デーモンは対話的ではないので、基本的には?他に特別な理由はありませんか? –
自分のセッションで、制御端末からデタッチされていると、デーモンはユーザーセッションの終了、ジョブ制御、CTRL-Cなどに敏感ではありません。 – ydroneaud
これは私が思ったものです。乾杯 –