1

ccl 内でシェル コマンドを実行したいのですが、何らかの理由でこのコマンドがハングすることがあります。したがって、このコマンドによって生成されたすべてのサブプロセスを強制終了したいと思います。これどうやってするの?

コマンドがハングしていない場合、シェルコマンドを実行するために trivial-shell を試しましたが、うまく機能します。

また、タイムアウトをチェックするために trivial-shell にある with-timeout マクロを使用します。タイムアウト エラー状態が発生するだけで、シェル プロセスはまだハングしています。ここでは、それらをすべて殺して何かを返したいだけです。

皆さん、ありがとうございました。

4

1 に答える 1

2

私が知るtrivial-shell限り、同期シェル呼び出しのみを提供するため、進行中のサブプロセスを終了する簡単な方法はありません。

ジョブを非同期で実行するには、Clozure Common Lisp の実装固有のccl:run-program関数を で呼び出すことをお勧めします。その後、必要に応じて、実行中のプロセスを :wait nil呼び出して強制終了できます。ドキュメンテーションはこちらccl:signal-external-process

于 2011-12-21T06:03:51.543 に答える