diff --git a/jodconverter-web/pom.xml b/jodconverter-web/pom.xml index d95f6da6..ac107e2a 100644 --- a/jodconverter-web/pom.xml +++ b/jodconverter-web/pom.xml @@ -60,6 +60,11 @@ + + org.apache.commons + commons-lang3 + 3.7 + org.redisson diff --git a/jodconverter-web/src/main/java/cn/keking/utils/ConverterUtils.java b/jodconverter-web/src/main/java/cn/keking/utils/ConverterUtils.java index be407fdd..253088b1 100644 --- a/jodconverter-web/src/main/java/cn/keking/utils/ConverterUtils.java +++ b/jodconverter-web/src/main/java/cn/keking/utils/ConverterUtils.java @@ -2,6 +2,7 @@ package cn.keking.utils; import com.sun.star.document.UpdateDocMode; import cn.keking.extend.ControlDocumentFormatRegistry; +import org.apache.commons.lang3.StringUtils; import org.artofsolving.jodconverter.OfficeDocumentConverter; import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration; import org.artofsolving.jodconverter.office.OfficeManager; @@ -97,8 +98,8 @@ public class ConverterUtils { } else { flag = false; } - }else { - Process p = Runtime.getRuntime().exec(new String[]{"sh","-c","ps -ef | grep "+processName}); + } else { + Process p = Runtime.getRuntime().exec(new String[]{"sh","-c","ps -ef | grep " + processName}); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InputStream os = p.getInputStream(); byte b[] = new byte[256]; @@ -106,8 +107,8 @@ public class ConverterUtils { baos.write(b); } String s = baos.toString(); - if (s.indexOf(processName) >= 0) { - String[] cmd ={"sh","-c","killall -9 "+processName}; + if (StringUtils.ordinalIndexOf(s, processName, 3) > 0) { + String[] cmd ={"sh","-c","kill -15 `ps -ef|grep " + processName + "|awk 'NR==1{print $2}'`"}; Runtime.getRuntime().exec(cmd); flag = true; } else {