Java アプリケーションから ApacheDS インスタンスを実行しようとしています。
ScriptWrapper クラスのこのようなメソッドを使用run()
して、ApacheDS に同梱されているスクリプトを実行して実行します。
public class ScriptWrapper implements Serializable {
private String scriptPath;
protected Process run(List<String> params) throws IOException {
LOGGER.debug("Executing script="+scriptPath);
params.add(0, scriptPath);
if(workDir != null) {
return Runtime.getRuntime().exec(params.toArray(new String[params.size()]), envp.toArray(new String[envp.size()]), new File(workDir));
} else {
return Runtime.getRuntime().exec(params.toArray(new String[params.size()]));
}
}
}
しかし、問題は、このアプリが実行されている tomcat が終了したり、ScriptWrapper がガベージ コレクションされると、ApacheDS のインスタンスも終了することです。それを生かしておく方法は?
編集:回答ありがとうございます。私は別の方法で問題に対処することに決め、バイナリ ApacheDS インストールに付属するスクリプトを使用してプロセスをデーモン化しました。