Java Process destroy方法kill进程,返回码测试
时间:2022-04-27
本文章向大家介绍Java Process destroy方法kill进程,返回码测试,主要内容包括Java代码:、测试shell脚本:、总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
Java代码:
package com.spiro;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String command = args[0];
System.out.println("Running command [" + command + "]");
try {
final Process process = Runtime.getRuntime().exec(command);
Thread t1 = new Thread() {
@Override
public void run() {
try {
int exitCode = process.waitFor();
System.out.println("Process exit with code [" + exitCode + "]");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread t2 = new Thread() {
@Override
public void run() {
System.out.println("Waiting 2 seconds.");
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
process.destroy();
System.out.println("Process destroyed");
}
};
t1.start();
t2.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
测试shell脚本:
#!/bin/sh
echo "abc--1"
sleep 3s
echo "abc--2"
sleep 3s
echo "abc--3"
执行:
java com.spiro.Main "sh /tmp/test.sh"
结果:
Running command [sh /tmp/test.sh] Waiting 2 seconds. Process destroyed Process exit with code [143]
总结
通过 destroy 方法可以kill进程,并可以得到非0得返回码
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 偿还技术债(2)-EventBus自己实现一个?
- AkShare-债券数据-收盘收益率曲线
- Vue 项目报错:‘$‘ is not defined ( no-undef )
- SpringBoot 项目开启热部署
- 小程序文件下载并保存文件名打开
- 分享个 CTF 小工具 bruteHASH
- centos配置mutt和msmtp实现邮件发送
- CentOS8 安装 jdk8 / java8的教程(推荐)
- Ubuntu18.04 一键升级Python所有第三方包 及安装python包的方法
- 详解centos7上elastic search安装及填坑记
- Linux利用Sysctl命令调整内核参数
- 在ubuntu16.04上创建matlab的快捷方式(实现方法)
- CentOS 7.6 Telnet服务搭建过程(Openssh升级之战 第一任务备用运输线搭建)
- Ubuntu18.04下安装MySQL(图文教程)
- 基于 ffmpeg+Webassembly 实现视频帧提取