Class SpawnService

All Implemented Interfaces:
CtxEventListener, BinaryMsgIfaceFactory, ContextHandleAware, HandleAware, Ready, ReadyListener

public final class SpawnService extends AbstractService implements BinaryMsgIfaceFactory
Service that is used to start/stop native programs on this node or other nodes using a spawn session. All programs started by this service are monitored and will be restarted using a backoff algorithm if they crash. This is the preferred way to start long-running programs on the current node or nodes that don't run Java.
Since:
1.0
Version:
2023-03-06
  • Method Details

    • addProcess

      public void addProcess(SpawnProcess process, NodeId nodeId)
      Add a process to the spawn list. If there is already an iface to the node then the process will be started immediately, otherwise it will start once the iface is established.
      Parameters:
      process - the process that should be run
      nodeId - the node to run the process on
    • addProcess

      public void addProcess(SpawnProcess process)
      Add a process to the spawn list. If there is already an iface to the node then the process will be started immediately, otherwise it will start once the iface is established. This will be run on the local node.
      Parameters:
      process - the process that should be run
    • removeProcess

      public void removeProcess(SpawnProcess process)
      Remove a process from the spawn list. If it is running, it will be killed.
      Parameters:
      process - the process to remove
    • restartProcess

      public void restartProcess(SpawnProcess process)
      Restart the specified process. This kills the process and allows the service to restart it.
      Parameters:
      process - the process to restart
    • setPriority

      public void setPriority(SpawnProcess process, int priority)
      Set the priority of the specified process.
      Parameters:
      process - the process to change the priority of
      priority - the new priority -20..19 (unix semantics)
    • getProcesses

      public List<SpawnProcess> getProcesses(NodeId nodeId)
      Return a list of processes that are currently expected to be running on the specified node.
      Returns:
      list of processes
    • getIface

      public BinaryMsgIface getIface(String name, BinaryMsgSession session)
      Description copied from interface: BinaryMsgIfaceFactory
      Given the name of an interface from a BinaryMsgSession, return an instance of BinaryMsgIface or null.
      Specified by:
      getIface in interface BinaryMsgIfaceFactory
      Parameters:
      name - the name of the interface
      session - the session to back the interface
      Returns:
      the iface or null