問題タブ [control-c]
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.
macos - DTrace END プローブが起動しない
私は 2009 年半ばの MacBook Pro と新しい 2012 年の MacBook Pro を持っており、DTrace (かなり素晴らしいツール) を学んでいます。新しい 2012 MBP で集計を計算すると、集計が出力されません。
私の2009年半ばのMBPでは、次のように表示されます。
2012 MBP には何も表示されません。
BEING および END プローブに printf を追加して、END プローブが次のように起動するかどうかを確認しました。
2009 年半ばの MBP では両方のプローブが発射され、出力されましたが、2012 年の MBP では BEGIN プローブのみが発射されました。END は発砲しませんでした。
どちらの MBP も Lion 10.7.3 を実行しています。次に何を試せばよいかわかりません。今思いつく唯一の違いは、2012 MBP に開発者コマンド ライン ツールをインストールしていないことです。しかし、それは私には意味がなく、暗闇の中でのショットです.
ヘルプやアイデアをいただければ幸いです。ありがとう。
=============[ルートアカウントを有効にする]====================
だから私はルートアカウントを有効にしてコマンドを再実行しました
成功しませんでしたが、成功した場合
できます!
=============[ kill -s INT ]=============================
もう少し実験をしました。私が実行した場合:
すべてが機能し、出力が表示されます。
私が実行した場合:
これも機能します!
しかし、ターミナルで control-c を使用すると、出力が表示されません。
control-c と kill -s INT の違いは何ですか?
c - ctrl-c でシェルのバックグラウンド プロセスを強制終了する
C で基本的なシェルを作成しようとしています。必要なことの 1 つは、バックグラウンド プロセスとフォアグラウンド プロセスの両方を使用できるようにすることです。Control-C は、フォアグラウンド プロセス (存在する場合) を強制終了する必要があり、バックグラウンド プロセスを強制終了してはなりません。
フォアグラウンド プロセスを強制終了する SIGINT のシグナル ハンドラを作成しました。唯一の問題は、バックグラウンド プロセスがある場合、それも強制終了することです。私が理解していることから、Control-Cが押されると、SIGINTがキューに渡されてさまざまなプロセスに渡され、プロセスが処理されると、そこで停止します。私のシェルはそれを処理する必要があるので、バックグラウンドプロセスに渡すべきではありませんか?
これが私のコードです:
フォアグラウンド プロセスを実行すると:
次に、contorl-c を押すと終了します。そうあるべきです。ただし、バックグラウンド プロセスを実行すると、次のようになります。
当然のように新しいプロンプトが表示されますが、control-c を押しても何も起こりません。しかし、バックグラウンド プロセスは強制終了されます。
バックグラウンドプロセスが殺されるのを止める方法を知りたいです。何か案は?:)
windows-7 - Windows 7 で、Ctrl-C または Ctrl-Break を別のプロセスに送信する方法
私たちのグループには、毎日実行される長期実行プロセスがあります。プロセスは通常、特定の日の午後 9 時に開始され、翌日の午後 7 時まで実行されます。したがって、通常は 1 日 22 時間稼働します。それらは、特定の汎用ユーザー ID の下でサーバー上のスケジュールされたタスクによって開始され、そのユーザー ID がログオンしているかどうかに関係なく開始および実行されます。したがって、これらはウィンドウのないコンソール実行可能ファイルです。
タスクは、大規模なサーバー ファームで実行される計算を調整します。一般に、これらの制御タスクは 1 日 22 時間中断することなく実行されます。ただし、これらのプロセスを停止して再起動する必要があることがよくあります。それらはサーバー ファームで実行されている多数のタスクを制御するため、すべてのサーバー ファーム プロセスを停止およびシャットダウンできるように、それらを完全にシャットダウンすることが重要です。それは私たちの問題に私をもたらします。
制御プロセスは、ctrl-C および ctrl-break シグナルに応答するようにプログラムされています。これは、コンソールにアクセスできるコンソールでプロセスが手動で開始され、コンソール ウィンドウで ctrl-c または ctrl-break を「入力」できる場合に正常に機能します。ただし、前述のように、プロセスは通常、ウィンドウのないスケジュールされたタスクとして実行されます。したがって、存在しないコンソール ウィンドウに何かを「入力」することはできません。これらはログオン プロセスなしで実行されるコンソール プロセスであるため、完全にウィンドウのない環境でも実行できる必要があります。では、シャットダウン シグナルをリッスンするプロセスをどのように設定すればよいでしょうか。
プロセスは確かに ctrl-C および ctrl-break シグナルをリッスンしますが、そのシグナルをプロセスに送信する方法がわかりません。これは Windows の根本的な問題のようですが、間違っていますか? 私は SendSignal.exe を認識していますが、これまでのところ動作させることができませんでした。次のように失敗します。
-F なしで「タスクキル」を試みると、次のようになります。
他のすべての「kill」関数は、シグナルを送信するのではなく、すぐにプロセスを kill します。
考えられる解決策の 1 つは、ファイル監視ベースの解決策です。特定のファイルの変更を監視する監視を作成します。しかし、これはハックであり、適切なシグナリングで行うことをお勧めします。誰かがこの問題を解決しましたか? 非常に基本的な機能のようで、Unix 環境で実行するのは確かに簡単です。マイクロソフトは、ウィンドウレス実行可能ファイルを完全にシャットダウンできるメカニズムを提供しているのでしょうか?
私は以下のスレッドを認識していますが、その質問は実質的に同じです (回答が必要な理由、つまり、ウィンドウなし、コンソールなしのプロセスでこれを実行できるようにする必要がある理由の仕様を除いて) が、回答はありません。私が言ったように、私たちにとってはうまくいかない「use SendSignal」を除いて:
Windows 上のアプリケーションに ctrl-C (SIGINT) を送信できますか?
他にも同様の質問がありますが、まだ回答がありません。
どんな助けでも感謝します。
c - 「control-c」を使用して送信ピアのソケットを閉じると、受信ピアのソケットが「」を無限に受信し続けるのはなぜですか
私はソケットプログラミングの初心者です。「control-c」を使用してソケットを閉じるのは悪い習慣であることは知っていますが、「control-c」を使用して送信プロセスを閉じた後、受信ピアのソケットが無限に受信し続けるのはなぜですか? ? 「control-c」を押してプロセスを終了した後、送信ピアのソケットを閉じるべきではありませんか? ありがとう!
sockets - TCP 接続での Ctrl+C キーの動作
私はネットワーク、特にtcp接続を研究しています.tcp接続を使用してサーバーにリモート接続し、コマンドラインを送信していくつかのアクションを実行する状況で疑問に思っています. ctrl+c信号の送信をどのように処理しますか? データセクションに+ヒットが
記述されている通常のtcpパッケージを送信していますか?または、フラグがオンになっているパッケージ、または接続を切断または閉じるためのフラグ
が送信されていますか?ctrlcRST
FIN
windows - 内部バッチジョブのみを終了する方法
.cmd バッチ スクリプト内で実行する必要がある .bat ファイルがあるとします。この内部 .bat ファイルには、ローカル ホストでの一連のユーザー操作が含まれており、ctrl+c を使用してのみ終了できます。
問題は、内側のスクリプトが終了した後に、外側のバッチ スクリプトを再開させる方法はありますか? それとも ctrl+c ですべて終了ですか?
私は内部スクリプトに別の方法を与えようとしましたが、そのファイルを変更することは許可されていないと言われただけです。私もかなりの量の調査を行いましたが、解決策は見つかりませんでした。私が何かを見落としていたら、私を許してください!ウィンドウが 2 つ表示されたり、不要な終了メッセージが表示されたりするのは避けたいと思います。