問題タブ [sigint]
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 - SIGINT シグナルが無視されたときに文字列を出力する
SIGINT
信号を無視し、無視されたというメッセージも出力するプログラムを書くように頼まれました。signal
これは、およびのマニュアル ページを参照した後に思いついたものsigaction
です。
しかし、信号が無視されたときにメッセージを出力する方法について混乱しています。もう 1 つのオプションは、独自のシグナル ハンドラー関数を定義することですが、それはそれを無視することにはなりませんよね?
bash - Ctrl-C をキャプチャし、それを使用して無限ループを適切に終了する方法
理由もなくプログラムが停止することがあるため、プログラムを無限ループ内で実行しようとしています。ただし、プログラムが再起動されないように Ctrl-C を押したいと思います。
Ctrl-C でプログラムを強制終了させたくありません。プログラムが終了するまで待ってから、再起動しないでください。
theprogram
ワイン プログラム (utorrent) です。
theprogram
右上の「x」をクリックするのと同じように安全に終了するようにする方法を教えてくれたボーナスポイント。コマンド ラインから手動kill
で実行するか、Ctrl-C キーを押すと、クリーンアップ コードを実行できません。したがって、再起動を停止しようとする私の試み。
SIGINT のトラップに関する他のいくつかの質問を確認しましたが、これを行う方法がわかりませんでした。
誰でもこのコードを修正できますか? 私のコードはtheprogram
、Ctrl-C が押されると、theprogram
クリーンアップせずに終了してループを終了するようです。
python - Python- SIGINT を使用したスレッドの強制終了- グローバル変数が正しく参照されていない
私は自分のスレッドが sigint をキャッチできる場所に到達しようとしています。kill_received
シングルトン リストが and の同じ名前空間にsignal_handler()
ありdo_the_uploads()
、同じメモリ ロケーションが参照されているように見えます。"print kill_received[0]"
しかし、C の実行中に C を制御すると、 Ctrl-C を押したために True であるべきときにFalse が出力されていることがわかります。
メインスクリプトから:
アップデート:
まだ成功していませんが、構文を次のように変更しました。
c - SIGINT のシグナルハンドラ
私は次のコードに取り組んでいます。プログラムは、sigaction で SIGINT を処理できる必要があります。これまでのところ、ほぼ完了していますが、2 つの問題が発生しました。
最初の問題は、3 秒以内に 3 つのシグナルを受信した場合、プログラムが「シャットダウン中」と出力してステータス 1 で終了することです。
2 番目の問題は、gettimeofdayとstruct timevalを使用してシグナルの到着時間に関する秒単位の時間を取得していることですが、ここでも失敗しました。 試してみると、 3秒以内にctrl+3回押したつもりでも無限ループに陥ってしまいました。Cまた、結果の秒数は非常に大きな数値です。
誰かがこれら2つの問題を解決するのを手伝ってくれることを願っています. これがコードです
bash - Ctrl+c でシェル コマンドを終了できない
以下のステートメントを適切bash
に終了できない理由を誰か教えてください。Ctrl+c
このステートメントを実行すると、2 つのbash
プロセスと 1 つのtail
プロセスが開始され (get from ps auxf
)、次に入力Ctrl+cされ、プロンプトが終了しませんbash
。この時点で、2 つのプロセスがまだ実行されているbash
間に 2 つのプロセスが停止していることがわかります。tail
に何かを入力する/tmp/a.txt
と、bash プロンプトに入ることができます。
私が欲しいのは、入力してから、関連するプロセスを残さずにプロンプトをCtrl+c終了することです。bash
誰かがこのステートメントの正確なプロセスを説明してくれると、よりありがたいでしょう。たとえば、パイプが bash フォークを引き起こしたり、何かがどこかにリダイレクトされたりするなどです。
2014 年 10 月 9 日更新:
役に立つ場合に備えて、ここでいくつかの更新を提供します。私の導入ソリューションは、次の 2 つの要素で似ています。
tmp pid ファイルを使用する
/li>trap like:
trap "rm ${tail_pid} 2>/dev/null; kill 0 2>/dev/null; exit;" INT TERM
を使用して、関連するプロセスを強制終了し、残りのファイルを削除します。
kill 0 2
これは bash 固有であり、0 は現在のプロセス グループ内のすべてのプロセスを意味することに注意してください。このソリューションでは tmp pid ファイルを使用しましたが、tmp pid ファイルを使用しない他のソリューションも期待しています。
bash - bashで、スクリプトを停止せずにSIGINTをキャッチして処理する方法は?
のように見えます
SIGINT
キャッチされたらすぐにスクリプトを停止します。その後、on_sigint
が実行されます。SIGINT
スクリプトを停止せずに処理することはできますか?