Package org.yamcs

Class ProcessRunner

  • All Implemented Interfaces:
    com.google.common.util.concurrent.Service, YamcsService

    public class ProcessRunner
    extends AbstractYamcsService
    Global service that launches and supervises a configured program or script. The primary purpose is to run non-java code, or to decouple java code that uses a fragile or untested JNI layer.
    • Constructor Detail

      • ProcessRunner

        public ProcessRunner()
    • Method Detail

      • getSpec

        public Spec getSpec()
        Description copied from interface: YamcsService
        Returns the valid configuration options for this service.
        Returns:
        the argument specification, or null if the args should not be validated.
      • init

        public void init​(String yamcsInstance,
                         String serviceName,
                         YConfiguration config)
                  throws InitException
        Description copied from interface: YamcsService
        Initialize this service. This is called before the service is started. All operations should finish fast.
        Specified by:
        init in interface YamcsService
        Overrides:
        init in class AbstractYamcsService
        Parameters:
        yamcsInstance - The yamcs instance, or null if this is a global service.
        serviceName - The service name.
        config - The configured arguments for this service. If YamcsService.getSpec() is implemented then this contains the arguments after being validated (including any defaults).
        Throws:
        InitException - When something goes wrong during the execution of this method.
      • doStart

        protected void doStart()
        Specified by:
        doStart in class com.google.common.util.concurrent.AbstractService
      • onProcessOutput

        protected void onProcessOutput​(String line)
      • doStop

        protected void doStop()
        Specified by:
        doStop in class com.google.common.util.concurrent.AbstractService