sigint

    1

    1答えて

    私はLinuxのCでシェルのコードを書いています。ここでは複数のパイプを実装しなければなりません(例えばA | B | c | D A、B、C、Dはコマンドです)。シェルは、同じpgidを持つコマンドごとに個別のプロセスを作成し、その入力と出力をpipe()システムコールを使用して接続します。すべての子が作成されると、親はこのpgidをtcsetpgrp()を使用してフォアグラウンドに来て、バック

    0

    1答えて

    私は、https://github.com/gorilla/muxにあるゴリラマルチプレクサライブラリを使用してgoでサーバを構築しています。 問題は、Ctrl + Cを使用しているとき、または特定のAPI呼び出し(たとえば「/ shutdown」)があるときに正常にシャットダウンすることです。 Go 1.8では、正常なシャットダウンが既に実装されていることはすでに知っています。しかし、それをゴリ

    0

    1答えて

    ユーザーがスクリプトを閉じようとすると、プレーンテキストのパスワードを要求します。 これまでのコードですが、関係のない部分は隠されています。 import signal from time import sleep _password = "iAmAdmin" def _close(args): """Close the application.""" if inp

    0

    1答えて

    PHP 5.6でデーモンを作成しています。今のところ、無限ループを持つmainLoop()メソッドを持つ基本的にDaemonクラスです。各繰り返しで、mainLoopは一連のステップを実行します。私はそれが「優雅なキル」メカニズムを実装する必要が :SIGINTやSIGTERMが到着した場合、デーモンが死ぬ前に、現在の反復の現在のステップを完了する必要があります。 私の考えでは、デフォルトでは静的

    0

    1答えて

    私はSOFですでに同様の質問があったと思います。しかし、私は本当に私の特定のケースのための適切な解決策を見つけることができませんでした。私は起動時にいくつかのワーカースレッドを開き、SIGTERMが受信されるまで実行を継続するデーモンを作ろうとしています。 SIGTERMを受け取ると、親スレッドはすべてのワーカースレッドを終了し、プロセス全体が停止します。これは私のコードがどのように見えるかです:

    1

    2答えて

    を捕まえていない私は、高速キャプチャと処理のために例を取って、キーボード割り込みをキャッチするSIGINTイベントハンドラを追加しました: import io import time import threading import picamera # Create a pool of image processors done = False lock = threading.Lo

    0

    2答えて

    私はC言語でncursesを使ってプログラムを書いています。私はCRTL C信号を処理しようとしています。私のコードでは、このシグナルは捕捉されて処理されていますが、プログラムは正しく終了していません。それは私がncursesから抜け出す方法かもしれませんか?さらなる研究がなければ //handle SIGINT signal void handle_signal(int signal){

    1

    1答えて

    非常に限られた組み込み機能を持つミニシェルを作成しようとしています。しかし、今はSIGINTを扱うたびに、私はもう一度コマンドを入力してからコマンドを入力する必要があります。 void loop() { struct sigaction sa; sa.sa_handler = do_nothing; int exit_status; do {

    1

    1答えて

    FreeBSD 10マシンでC++ロギングライブラリを使用していて、sigintを受け取ったときにスレッドを閉じるのに問題があります。 テスト目的でGitHubプロジェクトを作成しました(link)。 FreeBSD 10でビルドする場合は、それを実行して[Ctrl + C]を押すと終了します。以下で使用するビルドコマンドを見つけることができます。私が使用し $ git clone [email 

    -1

    1答えて

    ここでは、この問題の簡単なレクリエーションだcatchedされています。何が起こるかは、端末からCTR + Cを一度しか読み取ることができないことです。 2番目のポイント以降は、単にコンソールに^ Cを書き込むだけです。私はハンドラを毎回リセットする必要がありますか?前もって感謝します。