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  <2026 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  <2026
<== Date ==> <== Thread ==>

Subject: Re: What is serving these PVs?
From: "Hu, Yong via Tech-talk" <tech-talk at aps.anl.gov>
To: David Bracey <dbracey at fnal.gov>, Ralph Lange <ralph.lange at gmx.de>, EPICS Tech Talk <tech-talk at aps.anl.gov>
Date: Fri, 29 May 2026 14:39:29 +0000
Hi David,

Just as most of us do not have enough time (also probably not enough capability) to understand the sophisticated source codes of EPICS cores, I simply synthesized epicsEnvSet("EPICS_IOC_IGNORE_SERVERS", "qsrv qsrv2 rsrv pva pvxs") based on your initial message and LLM’s suggestions. Honestly I only have a decent understanding of RSRV. For that variable, you can put any strings (event duplicated ones) separated by spaces. 

One correction about my statement #1 below:  the right location in st.cmd is BEFORE  xxx_registerRecordDeviceDriver pdbbase, more ahead of iocInit.

Have a great weekend!
Yong

From: David Bracey <dbracey at fnal.gov>
Date: Thursday, May 28, 2026 at 10:39 AM

Hi Yong – mostly playing around, I like to understand how things work. 

 

I am curious about where you have included “pva” and “pvxs” in the EPICS_IOC_IGNORE_SERVERS env variable.  Does this do anything, to your knowledge?  My understanding was that RSRV = CA, QSRV = PVA and QSRV2 = PVXS.  So already having “qsrv” and “qsrv2” in the value would seem make “pva” and “pvxs” redundant.

 

From: Hu, Yong <yhu at bnl.gov>
Date: Thursday, May 28, 2026 at 9:01
AM

Hi David,

What is your use case for using ‘EPICS_IOC_IGNORE_SERVERS’, just for playing around? I did a quick Google search (and quick chats with Gemini and ChatGPT). My Google search points to two sites and one is this tech-talk thread showing one interesting use case. 

This is my first time to pay attention to that EPICS environment variable. Naturally I want to give a quick try. To further train Google and other AI models, I am spending a few minutes on posting what I have found out:


1. My EPICS base is R7.0.5. It seems I have to set this variable, i.e. epicsEnvSet("EPICS_IOC_IGNORE_SERVERS", "qsrv qsrv2 rsrv pva pvxs"),  before dbLoadDatabase. Both Gemini and ChatGPT say something like this “You define this variable in your host environment or directly in your IOC's startup script (st.cmd) before calling iocInit.”. That makes perfect sense. However, to me, the right location in st.cmd is BEFORE  dbLoadDatabase, more ahead of iocInit.

 

2. In the EPICS base Release Note, it mentions this variable (along with dbServer API which my Gemini chat also mentions): "separated by spaces if more than one should be ignored". That is why I use epicsEnvSet("EPICS_IOC_IGNORE_SERVERS", "qsrv qsrv2 rsrv pva pvxs"). However, it seems to me only one IOC server layer can be ignored at the moment: rsrv which is the traditional IOC server.

 

3. To stop PVA server, I simply type stopPVAServer in the EPICS shell. 

 

Cheers,

Yong   

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of David Bracey via Tech-talk <tech-talk at aps.anl.gov>
Date: Wednesday, May 27, 2026 at 2:40
PM

 

Pierrick Hanlet caught my mistake – QSRV was also running.  When I added that to EPICS_IOC_IGNORE_SERVERS, the PVs went away as expected.

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Ralph Lange via Tech-talk <tech-talk at aps.anl.gov>
Date: Wednesday, May 27, 2026 at 1:37
PM
To: EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: Re: What is serving these PVs?

On Wed, 27 May 2026 at 19:54, David Bracey via Tech-talk <tech-talk at aps.anl.gov> wrote:

I have all of the servers disabled on this IOC:

 

epics> dbsr

No server layers registered with IOC

epics> dbl

ABC:XYZ_CTRL_SYS:AMP

ABC:XYZ_CTRL_SYS:FREQ

ABC:XYZ_CTRL_SYS:TIME

ABC:XYZ_CTRL_SYS:COS

ABC:XYZ_CTRL_SYS:SIN

 

However the PVs are still being served:

 

dbracey@xyzzy:~$ pvxget ABC:XYZ_CTRL_SYS:AMP

ABC:XYZ_CTRL_SYS:AMP

    value double = 10

    alarm.severity int32_t = 0

 

epics> epicsPrtEnvParams

EPICS_IOC_IGNORE_SERVERS: rsrv qsrv2

 

I am just guessing at how things work, so I must have made a wrong assumption. 

Can someone explain what’s going on?

 

What does `pvinfo ...` show?

Maybe another instance of the IOC running...

 

Cheers,
~Ralph

 


References:
What is serving these PVs? David Bracey via Tech-talk
Re: What is serving these PVs? Ralph Lange via Tech-talk
Re: What is serving these PVs? David Bracey via Tech-talk
Re: What is serving these PVs? Hu, Yong via Tech-talk
Re: What is serving these PVs? David Bracey via Tech-talk

Navigate by Date:
Prev: Re: What is serving these PVs? David Bracey via Tech-talk
Next: Re: epics-ioc-runner: A lightweight systemd & procServ IOC Han Lee 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  <2026
Navigate by Thread:
Prev: Re: What is serving these PVs? David Bracey via Tech-talk
Next: iocStats CPU time seems wrong Mark Rivers 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  <2026
ANJ, 31 May 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·