Cleanly exit IOC when stopping IOC execution

Open
#2 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale

Research direction

Trace the stop-control entry point for running procServ instances and how it communicates with the EPICS shell. Verify how the existing forceful termination works, then define completion as issuing the EPICS exit() command before termination while preserving a fallback when graceful shutdown does not complete.

Written by the indexing model from the issue text.

Description

Currently, stopping an IOC only terminates the IOC process, but does not allow for that IOC to gracefully shutdown. In some cases, it would be preferable to issue the 'exit()' command at the EPICS shell prior to forcefully terminating the process.

In my experience this is necessary for certain IOCs which are controlling hardware, e.g. camera hardware. I have a concrete example of a failure we experience at SNS. A camera IOC makes a connection to the SDK/API supplied as a shared library by the camera vendor (ANDOR). If the connection is not closed properly, the next attempt to connect to the camera will fail. Issuing the exit() command at the EPICS shell would allow the opportunity for the IOC to 'clean up' by closing the camera instance properly via the vendor API.

Dominant language
Smalltalk
Stars
1
Forks
2
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DiamondLightSource/procServControl

All issues in DiamondLightSource/procServControl

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.