27 lines
1.0 KiB
Scala
27 lines
1.0 KiB
Scala
package org.broadinstitute.sting.queue.util
|
|
|
|
/**
|
|
* bkills a list of lsf jobs.
|
|
*/
|
|
class LsfKillJob(jobs: List[LsfJob]) extends CommandLineJob with Logging {
|
|
command = "bkill " + jobs.map(_.bsubJobId).mkString(" ")
|
|
|
|
def run() = {
|
|
// capture the output for debugging
|
|
val stdinSettings = new ProcessController.InputStreamSettings(null, null)
|
|
val stdoutSettings = new ProcessController.OutputStreamSettings(FIVE_MB, null, false)
|
|
val stderrSettings = new ProcessController.OutputStreamSettings(FIVE_MB, null, false)
|
|
|
|
val bkillCommand = (List("bkill") ++ jobs.map(_.bsubJobId)).toArray
|
|
|
|
// launch the bsub job from the current directory
|
|
val processSettings = new ProcessController.ProcessSettings(
|
|
bkillCommand, null, null, stdinSettings, stdoutSettings, stderrSettings, false)
|
|
val bkillOutput = processController.exec(processSettings)
|
|
|
|
if (bkillOutput.exitValue != 0) {
|
|
throw new JobExitException("Failed to kill LSF jobs.", bkillCommand, bkillOutput.exitValue, content(bkillOutput.stderr))
|
|
}
|
|
}
|
|
}
|