本文整理汇总了Java中com.intellij.execution.process.UnixProcessManager类的典型用法代码示例。如果您正苦于以下问题:Java UnixProcessManager类的具体用法?Java UnixProcessManager怎么用?Java UnixProcessManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UnixProcessManager类属于com.intellij.execution.process包,在下文中一共展示了UnixProcessManager类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: killProcessTree
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
@Override
public boolean killProcessTree(@NotNull Process process) {
if (SystemInfo.isWindows) {
try {
WinProcess winProcess = createWinProcess(process);
winProcess.killRecursively();
return true;
}
catch (Throwable e) {
LOG.info("Cannot kill process tree", e);
}
}
else if (SystemInfo.isUnix) {
return UnixProcessManager.sendSigKillToProcessTree(process);
}
return false;
}
示例2: waitAndTerminateAfter
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
private static int waitAndTerminateAfter(@NotNull Process process, int timeoutMillis) {
Integer exitCode = waitFor(process, timeoutMillis);
if (exitCode != null) {
return exitCode;
}
LOG.warn("shell env loader is timed out");
UnixProcessManager.sendSigIntToProcessTree(process);
exitCode = waitFor(process, 1000);
if (exitCode != null) {
return exitCode;
}
LOG.warn("failed to terminate shell env loader process gracefully, terminating forcibly");
UnixProcessManager.sendSigKillToProcessTree(process);
exitCode = waitFor(process, 1000);
if (exitCode != null) {
return exitCode;
}
LOG.warn("failed to kill shell env loader");
return -1;
}
示例3: doDestroyProcess
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
@Override
protected void doDestroyProcess() {
// reworked version of com.intellij.execution.process.impl.OSProcessManagerImpl#killProcessTree
if (SystemInfo.isUnix) {
UnixProcessManager.sendSignalToProcessTree(getProcess(), UnixProcessManager.SIGTERM);
}
else if (SystemInfo.isWindows) {
convertToWinProcess(getProcess()).killRecursively(); // TODO [xdbg][check]
}
else {
LOGGER.warn("Unexpected OS. Process will be destroyed using Java API");
getProcess().destroy();
}
}
示例4: killProcessTree
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
@Override
public boolean killProcessTree(@NotNull Process process) {
if (SystemInfo.isWindows) {
try {
new WinProcess(process).killRecursively();
return true;
}
catch (Throwable e) {
LOG.info("Cannot kill process tree");
LOG.info(e);
}
}
else if (SystemInfo.isUnix) {
return UnixProcessManager.sendSigKillToProcessTree(process);
}
return false;
}
示例5: getProcessID
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
public static int getProcessID(@Nonnull Process process) {
if (SystemInfo.isWindows) {
try {
if (process instanceof WinPtyProcess) {
return ((WinPtyProcess)process).getChildProcessId();
}
return WinProcessManager.getProcessId(process);
}
catch (Throwable e) {
throw new IllegalStateException("Cannot get PID from instance of " + process.getClass() + ", OS: " + SystemInfo.OS_NAME, e);
}
}
else if (SystemInfo.isUnix) {
return UnixProcessManager.getProcessId(process);
}
throw new IllegalStateException("Unknown OS: " + SystemInfo.OS_NAME);
}
示例6: killProcessTree
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
@Override
public boolean killProcessTree(@Nonnull Process process) {
if (SystemInfo.isWindows) {
try {
WinProcess winProcess = createWinProcess(process);
winProcess.killRecursively();
return true;
}
catch (Throwable e) {
LOG.info("Cannot kill process tree", e);
}
}
else if (SystemInfo.isUnix) {
return UnixProcessManager.sendSigKillToProcessTree(process);
}
return false;
}
示例7: waitAndTerminateAfter
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
private static int waitAndTerminateAfter(@Nonnull Process process, int timeoutMillis) {
Integer exitCode = waitFor(process, timeoutMillis);
if (exitCode != null) {
return exitCode;
}
LOG.warn("shell env loader is timed out");
UnixProcessManager.sendSigIntToProcessTree(process);
exitCode = waitFor(process, 1000);
if (exitCode != null) {
return exitCode;
}
LOG.warn("failed to terminate shell env loader process gracefully, terminating forcibly");
UnixProcessManager.sendSigKillToProcessTree(process);
exitCode = waitFor(process, 1000);
if (exitCode != null) {
return exitCode;
}
LOG.warn("failed to kill shell env loader");
return -1;
}
示例8: sendBreak
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
@Override
public void sendBreak()
{
if(SystemInfo.isWindows)
{
writeLine("BREAK");
}
else if(SystemInfo.isUnix)
{
int pid;
synchronized(myLock)
{
pid = myPid;
}
UnixProcessManager.sendSignal(pid, 3); // SIGQUIT
}
}
示例9: cancelTask
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
@Override
public boolean cancelTask(@NotNull ExternalSystemTaskId id, @NotNull ExternalSystemTaskNotificationListener listener)
throws ExternalSystemException {
final Process process = myCancellationMap.get(id);
UnixProcessManager.sendSignalToProcessTree(process, UnixProcessManager.SIGTERM);
return true;
}
示例10: isTerminated
import com.intellij.execution.process.UnixProcessManager; //导入依赖的package包/类
public boolean isTerminated() {
// check if exit code contains SIGTERM bits
// some scripts may return (exit code + 128) indicating some special conditions
return (getProcessOutput().getExitCode() & UnixProcessManager.SIGTERM) == UnixProcessManager.SIGTERM;
}