当前位置: 首页>>代码示例>>Java>>正文


Java NuProcess类代码示例

本文整理汇总了Java中com.zaxxer.nuprocess.NuProcess的典型用法代码示例。如果您正苦于以下问题:Java NuProcess类的具体用法?Java NuProcess怎么用?Java NuProcess使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


NuProcess类属于com.zaxxer.nuprocess包,在下文中一共展示了NuProcess类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: destroy

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
public void destroy() {
    log.info("Destroying " + command);
    if (this.maybeRunningProcess.isPresent()) {
        final NuProcess runningProcess = this.maybeRunningProcess.get();

        runningProcess.destroy(false);

        try {
            runningProcess.waitFor(3, TimeUnit.SECONDS);

            if (runningProcess.isRunning())
                runningProcess.destroy(true);
        } catch (InterruptedException e) {
            runningProcess.destroy(true);
        }
    }
}
 
开发者ID:adamkewley,项目名称:textadventurer-server,代码行数:18,代码来源:ObservableProcess.java

示例2: getPid

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
/** Gets the native process identifier for the given process instance. */
@Nullable
public Long getPid(Object process) {
  if (process instanceof NuProcess) {
    return (long) ((NuProcess) process).getPID();
  } else if (process instanceof Process) {
    // Until we switch to JDK9, we will have to go with this per-platform workaround.
    // In JDK9, `Process` has `getPid()` method that does exactly what we need here.
    // http://download.java.net/java/jdk9/docs/api/java/lang/Process.html#getPid--
    Long pid = jdk9ProcessId(process);
    if (pid == null) {
      pid = unixLikeProcessId(process);
    }
    if (pid == null) {
      pid = windowsProcessId(process);
    }
    return pid;
  } else {
    throw new IllegalArgumentException("Unknown process class: " + process.getClass().toString());
  }
}
 
开发者ID:facebook,项目名称:buck,代码行数:22,代码来源:ProcessHelper.java

示例3: send

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
public void send(String stdin) {
    if (this.maybeRunningProcess.isPresent()) {
        final NuProcess runningProcess = this.maybeRunningProcess.get();

        final ByteBuffer buffer = ByteBuffer.wrap((stdin + "\n").getBytes());

        runningProcess.writeStdin(buffer);
    }
}
 
开发者ID:adamkewley,项目名称:textadventurer-server,代码行数:10,代码来源:ObservableProcess.java

示例4: ChildProcess

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
ChildProcess(
        final NuProcess process,
        final ProcessSettings settings) {

    m_process = process;
    m_settings = settings;
    m_stdinClosed = new AtomicBoolean(false);

    // Handle write in callback
    if (settings.getWantWrite()) {
        m_process.wantWrite();
    }
}
 
开发者ID:clidev,项目名称:spike.x,代码行数:14,代码来源:ChildProcess.java

示例5: onPreStart

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public void onPreStart(final NuProcess nuProcess) {
    this.process = new DefaultReactiveProcess(nuProcess, exitCode);
    Observable.Operator<ProcessOutput<T>, T> combineWithProcess = combineWith(process);

    // subscribe to stdout
    if (stdoutObserver != null) {
        Observable<T> out;
        Observable.Operator<T, ByteBuffer> outDecoder = decoder.create();
        if (outDecoder == null) {
            out = (Observable<T>) this.stdout; // T must be ByteBuffer
        } else {
            out = stdout.lift(outDecoder);
        }
        out.lift(combineWithProcess).subscribe(stdoutObserver);
    }

    // subscribe to stderr
    if (stderrObserver != null) {
        Observable<T> err;
        Observable.Operator<T, ByteBuffer> errDecoder = decoder.create();
        if (errDecoder == null) {
            err = (Observable<T>) this.stderr; // T must be ByteBuffer
        } else {
            err = stderr.lift(errDecoder);
        }
        err.lift(combineWithProcess).subscribe(stderrObserver);
    }
}
 
开发者ID:okapies,项目名称:rx-process,代码行数:31,代码来源:ReactiveProcessHandler.java

示例6: cat

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
@Benchmark
public void cat() throws Exception {
    NuProcessBuilder builder = new NuProcessBuilder("cat", TEST_FILE);
    builder.setProcessListener(new NuAbstractProcessHandler() {

        private final CRC32 crc32 = new CRC32();

        @Override
        public void onExit(int statusCode) {
            long crc = crc32.getValue();
            if (crc != TEST_CRC32) {
                System.err.println("Incorrect CRC32 checksum (" + crc + "); file corruption?");
            }
        }

        @Override
        public void onStdout(ByteBuffer buffer, boolean closed) {
            // the contents of the file are run through CRC32 just to "do" something with them
            // note that update(ByteBuffer) requires Java 8. it's been selected because it doesn't
            // inflate the measured allocation rate by allocating buffers internally
            crc32.update(buffer);
        }
    });

    NuProcess process = builder.start();

    int exitCode = process.waitFor(5L, TimeUnit.MINUTES);
    if (exitCode == Integer.MIN_VALUE) {
        process.destroy(false);

        throw new AssertionError(process + " took longer than 5 minutes to complete");
    }
    if (exitCode != 0) {
        throw new AssertionError(process + " failed (Exit code: " + exitCode + ")");
    }
}
 
开发者ID:brettwooldridge,项目名称:NuProcess,代码行数:37,代码来源:NuProcessBenchmark.java

示例7: execute

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
private void execute()
{
    NuProcessBuilder pb = new NuProcessBuilder(Arrays.asList("ssh", host));
    ProcessHandler processHandler = new ProcessHandler();
    pb.setProcessListener(processHandler);
    NuProcess np = pb.start();

    processHandler.write("cd");
    processHandler.write("ls -l");
    processHandler.write("exit");

    processHandler.awaitDisconnection();
}
 
开发者ID:brettwooldridge,项目名称:NuProcess,代码行数:14,代码来源:SshExample.java

示例8: createProcess

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
/** {@inheritDoc} */
@Override
public NuProcess createProcess(List<String> commands, String[] env, NuProcessHandler processListener, Path cwd)
{
   LinuxProcess process = new LinuxProcess(processListener);
   synchronized (LinProcessFactory.class) {
      process.start(commands, env, cwd);
   }
   return process;
}
 
开发者ID:brettwooldridge,项目名称:NuProcess,代码行数:11,代码来源:LinProcessFactory.java

示例9: createProcess

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
/** {@inheritDoc} */
@Override
public NuProcess createProcess(List<String> commands, String[] env, NuProcessHandler processListener, Path cwd)
{
   WindowsProcess process = new WindowsProcess(processListener);
   process.start(commands, env, cwd);
   return process;
}
 
开发者ID:brettwooldridge,项目名称:NuProcess,代码行数:9,代码来源:WinProcessFactory.java

示例10: createProcess

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
/** {@inheritDoc} */
@Override
public NuProcess createProcess(List<String> commands, String[] env, NuProcessHandler processListener, Path cwd)
{
   OsxProcess process = new OsxProcess(processListener);
   process.start(commands, env, cwd);
   return process;
}
 
开发者ID:brettwooldridge,项目名称:NuProcess,代码行数:9,代码来源:OsxProcessFactory.java

示例11: hasProcessFinished

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
/** @return whether the process has finished executing or not. */
public boolean hasProcessFinished(Object process) {
  if (process instanceof NuProcess) {
    return !((NuProcess) process).isRunning();
  } else if (process instanceof Process) {
    try {
      ((Process) process).exitValue();
      return true;
    } catch (IllegalThreadStateException e) {
      return false;
    }
  } else {
    throw new IllegalArgumentException("Unknown process class: " + process.getClass().toString());
  }
}
 
开发者ID:facebook,项目名称:buck,代码行数:16,代码来源:ProcessHelper.java

示例12: launchProcess

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
/**
 * Launches a process and asynchronously sends notifications to {@code listener} on a background
 * thread when the process starts, has I/O, or exits.
 */
public LaunchedProcess launchProcess(ProcessExecutorParams params, final ProcessListener listener)
    throws IOException {
  LOG.debug("Launching process with params %s", params);

  ListeningProcessHandler processHandler = new ListeningProcessHandler(listener, params);

  // Unlike with Java's ProcessBuilder, we don't need special param escaping for Win32 platforms.
  NuProcessBuilder processBuilder = new NuProcessBuilder(processHandler, params.getCommand());
  if (params.getEnvironment().isPresent()) {
    processBuilder.environment().clear();
    processBuilder.environment().putAll(params.getEnvironment().get());
  }
  if (params.getDirectory().isPresent()) {
    processBuilder.setCwd(params.getDirectory().get());
  }

  NuProcess process = BgProcessKiller.startProcess(processBuilder);
  if (process == null) {
    throw new IOException(String.format("Could not start process with params %s", params));
  }
  LOG.debug("Successfully launched process %s", process);

  // This should be set by onPreStart().
  Preconditions.checkState(processHandler.process != null);
  processRegistry.registerProcess(processHandler.process.nuProcess, params, ImmutableMap.of());
  return processHandler.process;
}
 
开发者ID:facebook,项目名称:buck,代码行数:32,代码来源:ListeningProcessExecutor.java

示例13: verifyExternalProcessInfo

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
void verifyExternalProcessInfo(long pid, NuProcess process, ProcessExecutorParams params)
    throws Exception {
  ProcessInfo info = processesInfo.get(pid);
  assertThat(info, CoreMatchers.instanceOf(ExternalProcessInfo.class));
  assertEquals(pid, ((ExternalProcessInfo) info).pid);
  assertSame(process, ((ExternalProcessInfo) info).process);
  assertEquals(params, ((ExternalProcessInfo) info).params);
}
 
开发者ID:facebook,项目名称:buck,代码行数:9,代码来源:ProcessTrackerTest.java

示例14: onPreStart

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
@Override
public void onPreStart(final NuProcess process) {
    m_handler.onPreStart(new ChildProcess(process, m_settings));
}
 
开发者ID:clidev,项目名称:spike.x,代码行数:5,代码来源:AbstractProcessHandler.java

示例15: onStart

import com.zaxxer.nuprocess.NuProcess; //导入依赖的package包/类
@Override
public void onStart(final NuProcess process) {
    m_handler.onStart(new ChildProcess(process, m_settings));
}
 
开发者ID:clidev,项目名称:spike.x,代码行数:5,代码来源:AbstractProcessHandler.java


注:本文中的com.zaxxer.nuprocess.NuProcess类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。