import java.util.concurrent.TimeUnit;

public class HentikanProses {
    public static void main(String[] args) throws Exception {
        // Proses berumur panjang: sleep selama 60 detik.
        Process lambat = new ProcessBuilder("/bin/sleep", "60").start();

        boolean selesaiDalam = lambat.waitFor(200, TimeUnit.MILLISECONDS);
        System.out.println("selesai dalam 200 ms  : " + selesaiDalam);

        // destroy() mengirim sinyal terminate; anak berhenti teratur.
        lambat.destroy();
        lambat.waitFor();
        System.out.println("exit setelah destroy  : " + lambat.exitValue());

        // destroyForcibly() mengirim sinyal kill; tidak ada tahap bersih-bersih.
        Process membandel = new ProcessBuilder("/bin/sleep", "60").start();
        membandel.waitFor(200, TimeUnit.MILLISECONDS);
        membandel.destroyForcibly();
        membandel.waitFor();
        System.out.println("exit setelah forcibly : " + membandel.exitValue());
    }
}
