2011-12-21 7 views
1

私はcclの中でシェルコマンドを実行したいが、何らかの理由でこのコマンドがハングしている可能性があります。だから、私はこのコマンドで生成されたすべてのサブプロセスを終了したい。これどうやってするの?clozure clのプロセスのグループを殺す方法は?

私はシェルコマンドを実行するためにトリビアルシェルを試していますが、コマンドがハングしていないときはうまくいきます。

タイムアウトをチェックするためにトリビアル・シェルにあるwith-timeoutマクロも使用しています。タイムアウト・エラー状態になります。シェル・プロセスはまだそこにあります。ここで私はそれらをすべて殺して何かを返すだけです。

ありがとうございます。

+0

私はClozure CLメーリングリストにこのような質問をすることをお勧めします - すべての専門家がいます。 –

答えて

2

私が言う限りでは、trivial-shellは同期シェルコールしか提供しないので、進行中のサブプロセスを終了する簡単な方法はありません。

私は、Clozure Common Lispの実装固有のccl:run-program関数を:wait nilと呼んで、非同期にジョブを実行することをお勧めします。実行中のプロセスでccl:signal-external-processと呼ぶと、必要に応じてkillすることができます。 Documentation here

関連する問題