問題タブ [sigpipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ソケット経由の C シグナル (sigpipe、sighup)
ソケット TCP 経由で接続されたクライアントがターミナル (GUI の [X]) を閉じても、サーバーを閉じたりクラッシュさせたりする必要がないように、SIGHUP と SIGPIPE シグナルを処理する必要があります。
このようなsigupハンドラーをクライアントに設定しました
サーバーで、このような SIGPIPE ハンドラーを設定しました
ただし、クライアントが端末のウィンドウを閉じると、サーバーはループします。
何か案が?とにかく応援ありがとう
c - SIG_IGN マクロ定義の数字 1 の意味は何ですか?
私はその意味を知ってい(void (*)(int))
ます: unknown_name を void を返す関数 (int) へのポインタにキャストします。
しかし、次の意味は何1
ですか?
c - OpenSSL が sigpipe @ SSL_connect を引き起こすのはなぜですか?
OpenSSL により、SSL_connect を呼び出した行で SIGPIPE が起動されます。GDB を実行して、ソケットが閉じられていないことを確認しました。/proc/fd/# では、前後にソケットが閉じられていないように見えます。set_fd 呼び出しと connect_state 呼び出しの順序を切り替えてみました。OpenSSL で何かを台無しにしたと思いますが、それを理解できないようです。
c++ - C++: サーバーソケットに接続できません (Linux)
親愛なる、
子プロセスを実行し、ソケット経由でこの子プロセスに接続しようとするメイン プログラムがあります。この接続は正常に機能します。しかし、エラーが検出されると、メイン プログラムはソケット接続を適切に閉じようとし、子プロセスを強制終了し、新しいプロセスを再起動して、新しい子プロセスに接続しようとします。
再接続は数百回実行できます。しかし、これを何百回も繰り返すと、一定回数のサイクルの後、メイン プログラムは子プロセスに接続できなくなります。
これにリンクがあるかどうかはわかりませんが、ソケットを適切に閉じようとすると、メインプログラムが SIGPIPE を受け取ることがあります。無視して処理を続行します。しかし、プログラムが接続を受け入れなくなると、常に 10 個の SIGPIPES を受信していることに気付きました。何度か試しましたが、いつも10で終わります。
何か案が ?
よろしく、ブライス
編集済み:
接続を閉じるコードは次のとおりです。
`
それを開くコードは次のとおりです。
`
子プロセスを強制終了するコードは次のとおりです。
`
java - スパークパイプアクション付きEPIPE(ブロークンパイプ)
ヤーンでスパークアプリケーションを実行しようとしています。アプリケーションはpipe()
アクションを使用して、ローカルの php プログラムを実行します。PHP プロセスが開始されるたびに、SIGPIPE
約 1 分後に (いくつかのレコードが正常に処理された後) シグナルを受信し、終了します。
PS: 同じプログラムは、スタンドアロンの OS 環境ではスムーズに実行できますが、クラスターである運用環境ではうまくいきません。
誰でも考えられる原因を助けることができますか? ありがとう。
コードは次のとおりです:
Scala 側:
PHP側: