PROC remote_host_output, rhoutput (status)

  VAR
    attempts: integer = 0
    ignore_status: status
    proc_status: status
  VAREND
  define_system_task name=rhoutput sp=rhp$output automatic_restart=TRUE ..
        deactivate_task_option=terminate idle_task_option=terminate restart_after_idle=TRUE ..
        spy_identifier=52 l=($system.osf$operator_library osf$task_services_library) ..
        tel=warning lm=$null lmo=none dm=off status=proc_status
  IF NOT proc_status.normal THEN
    IF $condition(proc_status.condition) <> 'OSE$SYSTEM_TASK_ALREADY_DEFINED' THEN
      EXIT_PROC WITH proc_status
    IFEND
  IFEND
  deactivate_system_task task_name=rhoutput status=ignore_status

  REPEAT
    activate_system_task task_name=rhoutput status=proc_status
    IF NOT proc_status.normal THEN
      IF $condition(proc_status.condition) = 'OSE$SYSTEM_TASK_STILL_RUNNING' THEN

" Wait for 5 seconds and recheck the status. Do this for up to 2 minutes,
" to allow the task to deactivate before attempting to activate it.

        attempts = attempts + 1
        wait 5000
      ELSE
        EXIT_PROC with proc_status
      IFEND
    IFEND
  UNTIL (proc_status.normal) OR (attempts > 24)
  EXIT_PROC with proc_status

PROCEND remote_host_output
