How-to Release IOCs to ProductionPLEASE USE THE LATEST INSTRUCTIONS WHICH CAN BE FOUND HERE: Soft IOC Release ProcedurePLEASE USE THE LATEST INSTRUCTIONS WHICH CAN BE FOUND HERE: HardIOC Release Procedure STEP 1: Make sure your soft IOC is not currently running on lcls-prod01 or the pv gateway will get confused. Log into lcls-prod01 under the laci account with ssh laci@lcls-prod01 Enter ps -ef | grep <your-binary> If this returns a match contact Jingchen on instructions on properly stopping your soft IOC. STEP 2: Prepare your ioc for the ca network: Change configure/RELEASE to use the correct versions of all the modules. Make sure you are using versions that are available in the standalone environment. Modify st.cmd following the example in /afs/slac/g/lcls/epics/iocTop/Water/Water-R1-0-8 Note that you need to be logged into a machine on the DMZ in order to see this st.cmd directory. - make sure the first line looks like #!../../bin/linux-x86/<your-binary>
- make sure the second command is < envPaths
- make sure the third command is
- remove all references to pre_st.cmd and post_st.cmd
- change everything that relies on symbolic links
- replace
Wiki Markup |
---|
${LCDATA}/<ioc-name> | with Wiki Markup |
---|
${IOC_DATA}/${IOC} |
- look at the example for further help.
Build and test Commit to CVS and tag STEP 3: Log in to lcls-builder. ssh iocegr@lcls-builder If prompted for password, type kinit and then try again STEP 4: Change directory to your IOC Application area as follows. cd $EPICS_IOC_TOP/<subsystem> Example: cd $EPICS_IOC_TOP/Water If there is no directory for your subsystem under $EPICS_IOC_TOP, create one. STEP 5: Set CVSROOT using your user account name. export CVSROOT=:ext:<username>@lcls-prod02:/afs/slac/g/lcls/cvs STEP 6: Check out the tagged release of your ioc (created in step 1) from cvs into iocTop/<subsystem>/<module-with-version-number>. Example:cvs co -d Water-R1-0-8 -r Water-R1-0-8 Water STEP 7: Modify your configure/RELEASE file to point to the correct location of EPICS base on the build system: EPICS_SITE_TOP=/usr/local/lcls/epics STEP 8: Create a folder to store the IOC data: cd $IOC_DATA/<ioc-name> If your IOC data area does not have an iocInfo subdirectory, create one: mkdir iocInfo If you are restoring pvs on reboot of your ioc if using ChannelWatcher: mkdir restore if using Autosave: mkdir autosave STEP 9: Build your IOC and test it. To run it: cd $EPICS_IOC_TOP/<subsystem>/<module-with-version-number>/iocBoot/<ioc-name> chmod+x st.cmd ./st.cmd STEP 10: Create directory for the soft ioc under /usr/local/lcls/epics/iocCommon. You might want to start by copying a working ioc: cp -r sioc-in20-wa01 <your-ioc-name> STEP 11: - Modify the startup.cmd file in iocCommon/<your-ioc-name>.
- On the first line, replace the path with the path to your IOC's binary.
- Fix the stuff in the comment box
- Under "Go to IOC top directory and execute IOC startup script", replace the path to the iocBoot directory with the path to your IOC's boot directory.
STEP 12: - Test by executing ./startup.cmd
- Run lclshome on lcls-builder to verify that all your PVs are connected.
STEP 13: Add your IOC to /usr/local/lcls/epics/iocCommon/screeniocs so that it can be started using iocConsole. For an example, look at the section for sioc-in20-wa01 Verify that you can boot your IOC using iocConsole: iocConsole <ioc-name> STEP 14: Notify Jingchen when you are done. He will create system scripts to start and stop your IOC process, including automatic IOC startup when the daemon server is rebooted.
|