!49 修复Linux环境中OfficePluginManager中KillProcess出现杀掉进程失败,导致二次启动失败的bug
* 修复Linux环境中OfficePluginManager中KillProcess出现杀掉已经存在进程失败,导致二次启动失败的bugpull/43/MERGE
parent
f1b949865f
commit
3e43c2f9d0
|
@ -6,6 +6,7 @@ import org.artofsolving.jodconverter.OfficeDocumentConverter;
|
||||||
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
|
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
|
||||||
import org.artofsolving.jodconverter.office.OfficeManager;
|
import org.artofsolving.jodconverter.office.OfficeManager;
|
||||||
import org.artofsolving.jodconverter.office.OfficeUtils;
|
import org.artofsolving.jodconverter.office.OfficeUtils;
|
||||||
|
import org.artofsolving.jodconverter.util.PlatformUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
@ -24,7 +25,6 @@ import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建文件转换器
|
* 创建文件转换器
|
||||||
|
@ -97,9 +97,8 @@ public class OfficePluginManager {
|
||||||
|
|
||||||
private boolean killProcess() {
|
private boolean killProcess() {
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
Properties props = System.getProperties();
|
|
||||||
try {
|
try {
|
||||||
if (props.getProperty("os.name").toLowerCase().contains("windows")) {
|
if (PlatformUtils.isWindows()) {
|
||||||
Process p = Runtime.getRuntime().exec("cmd /c tasklist ");
|
Process p = Runtime.getRuntime().exec("cmd /c tasklist ");
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
InputStream os = p.getInputStream();
|
InputStream os = p.getInputStream();
|
||||||
|
@ -112,6 +111,20 @@ public class OfficePluginManager {
|
||||||
Runtime.getRuntime().exec("taskkill /im " + "soffice.bin" + " /f");
|
Runtime.getRuntime().exec("taskkill /im " + "soffice.bin" + " /f");
|
||||||
flag = true;
|
flag = true;
|
||||||
}
|
}
|
||||||
|
} else if (PlatformUtils.isLinux()) {
|
||||||
|
Process p = Runtime.getRuntime().exec(new String[]{"sh", "-c", "ps -ef | grep " + "soffice.bin" + " |grep -v grep | wc -l"});
|
||||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
InputStream os = p.getInputStream();
|
||||||
|
byte[] b = new byte[256];
|
||||||
|
while (os.read(b) > 0) {
|
||||||
|
baos.write(b);
|
||||||
|
}
|
||||||
|
String s = baos.toString();
|
||||||
|
if (!"0".equals(s)) {
|
||||||
|
String[] cmd = {"sh", "-c", "ps -ef | grep soffice.bin | grep -v grep | awk '{print \"kill -9 \"$2}' | sh"};
|
||||||
|
Runtime.getRuntime().exec(cmd);
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Process p = Runtime.getRuntime().exec(new String[]{"sh", "-c", "ps -ef | grep " + "soffice.bin"});
|
Process p = Runtime.getRuntime().exec(new String[]{"sh", "-c", "ps -ef | grep " + "soffice.bin"});
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
|
Loading…
Reference in New Issue