EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
<== Date ==> <== Thread ==>

Subject: "Inject" code into IOC startup files?
From: "Blomley, Edmund \(IBPT\) via Tech-talk" <tech-talk at aps.anl.gov>
To: EPICS Tech Talk <tech-talk at aps.anl.gov>
Date: Thu, 26 Jun 2025 09:27:00 +0000
Dear all,

Most of our IOCs use the (current?) "default" IOC structure created by the `makeBaseApp.pl` script. 

Now there are several scenarios where we currently add the same line of code or same „functionality" to each start up file "by convention“. (For new IOCs we have some scripts adjusting the results of `makeBaseApp.pl` from the beginning).

One example: we export the list of PVs after IOC init. Because we use a custom ENV variables set by our systemd script for each IOC, this line is 100% identical for each IOC and looks something like that:

cd ${TOP}/iocBoot/${IOC}
iocInit

# Write list of records.
dbl > "${EPICS_AUTOPVLIST_IOC_FILE}"

The second scenario is to do some things _before_ IOC init: For example load the iocStats records.

Adding these lines of code once is one thing… But for example, now I would like to add recCaster to each startup file… if that is done, we might also can get rid of the dbl export…

So the question: Is there a way to define some generic „hook-in“ behavior which allows to „add code“ _before_ AND _after_ IOC init, where the actual code is managed outside of the IOC structure and could be used across multiple IOCs? Also due to our orchestration and systemd files, we can do some „customization“ during IOC deployment if necessary.

Our current „brain-storming“ idea is maybe through a module, we could add an IOC shell function that allows registering files for later execution. But before we start working on that… other ideas? Is there already a built-in option? Have other labs already created some custom code to allow for something like that?

Cheers
Eddy

Attachment: smime.p7s
Description: S/MIME cryptographic signature


Replies:
Re: "Inject" code into IOC startup files? Maren Purves via Tech-talk
Re: "Inject" code into IOC startup files? Timo Korhonen via Tech-talk
Re: "Inject" code into IOC startup files? Mark Rivers via Tech-talk
RE: "Inject" code into IOC startup files? Pearson, Matthew via Tech-talk

Navigate by Date:
Prev: Re: [EXTERNAL] Suggestions wanted on IOC hardware Heinz Junkes via Tech-talk
Next: Re: "Inject" code into IOC startup files? Maren Purves via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
Navigate by Thread:
Prev: SNS Controls Integration Group Leader Position White, Karen S. via Tech-talk
Next: Re: "Inject" code into IOC startup files? Maren Purves via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
ANJ, 26 Jun 2025 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·