Title: Управление IOC CSS: table.css
{{TOC}}
Управление IOC ВЭПП3-4
В данный момент происходит переосмысление поэтому описание может не соответствовать действительности
IOC сервер bpm
Для обеспечения жизнененного цикла ioc выделены два виртуальных серевера bpm и bpm-dev. bpm-dev предназначен для сборки проектов, на нем установлен vim, gcc-7, и прочие необходимые средства для сборки пакетов. также на нем можно делать пробные запуски ioc в домашней директории.
установка на bpm
Корневая директория для установки ioc выбрана /epics. Тикам образом установка выглядит
make INSTALL_LOCATION=/epics install
возможно перед установкой имеет смысл сделать make clean, чтобы пресобрать registerRecordDeviceDriver файлы.
После этого установленные файлы переносятся на bpm командой
rsync -avzu $(INSTALL_LOCATION)/ bpm:$(INSTALL_LOCATION)
запуск ioc
Запуск ioc осуществляется systemd, для этого создан ioc-master.service. Этот сервис при запуске компьютера пробегает по директории с окружением запускаемых ioc находится /epics/startup/ioc/bpm.vepp4.local и запускает их основываясь на шаблонах ioc@ и ioc-legacy@
Например для запуска ioc с именем myioc установленным по пути /epics/myioc необходимо создать файл /epics/startup/ioc/bpm.vepp4.local/myioc/env.sh со следующим содержанием
PROCSERV_PORT=_номер_procServ_порта_
IOC_DIR=/epics/myioc/iocBoot/iocmyioc
IOC_EXE=../../bin/linux-x86_64/myioc
IOC_CMD=myioc.cmd
где номер_procServ_порта номер порта по которому можно подключиться к консоли ioc, список номеров ведется https://star.inp.nsk.su/~bekhte/v4orb2.wiki.git/html/vXbpmd#ports
идея для ioc сервисов взята https://bitbucket.org/europeanspallationsource/m-epics-environment.git
устарело
Для управления IOC существует специальный скрипт v3bpmd и v4bpmd для управления ВЭПП3 и ВЭПП4 соответственно. И v4disd для управления диссектором ВЭПП4, ВЭПП3. И v4chand для управления каналом ВЭПП3-ВЭПП4.
Данные скрипты соответствуют стандарту LSB (Linux Standard Base) и предназначенны для установки ссылки в /etc/rc директорию, кроме этого скрипт может быть установлен в стандартный путь поиска для запуска из командной строки.
При запуске скрипт проверяет на каком компьютере он запущен, если компьютер не vepp4-pult6 то скрипт безопасно завершается(vepp4-cont для диссектора ВЭПП4). Если скрипт запущен от root (при инициализации), то при необходимости создаются директории для записи логов /var/log/softioc и переключается на пользователя vepp4. Находясь под пользователем vepp4 проверяется доступность для записи директории системных логов, если доступна то логи пишутся туда, если нет то в директорию расположения IOC. Если скрипт запускается под другим пользователем, скрипт завершается.
Зарезервированные порты[ports]
Для управления запуском IOC используется редиректор консоли procServ. Он перенаправляет консоль IOC на зарезервированный за ним порт. Номера портов 4050-4200 зарезервированны под использование системы пикапов. Краткая схема резервирования
Порт | система | хост |
---|---|---|
4050 - 4067 | VEPP4 | bpm |
4068 | nmr | pult6 |
4069 | dissector_e | bpm |
4070 - 4074 | VEPP4 | bpm |
4075 | dissector_p | bpm |
4076 | dissector_fft_e | bpm |
4077 | dissector_fft_p | bpm |
4078 | dissector_v3 | bpm |
4079 | dissector_fft_v3 | bpm |
4080 - 4104 | VEPP3 | bpm |
4105 | helper3 | bpm |
4106 - 4119 | резерв | |
4120 - 4155 | VEPP4 | bpm |
4156 - 4170 | v4chan | bpm |
4171 - 4199 | резерв | |
5001 | orbit | pult6 |
Вызов скрипта
исполняется на bpm
v3bpmd [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what|watch]
v4bpmd [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what|watch]
v4disd [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what|watch]
v4chand [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what|watch]
Опции
- help - напечатать подсказку пользования скриптом
- start - запуск всех IOC, если IOC уже запущен то на экран печатается сообщение об ошибке, дублирующий IOC не запускается
- start ioc_name - запуск конкретного IOC
- stop - остановка всех IOC
- stop ioc_name - остановка конкретного IOC
- status - статус всех IOC
- restart - остановка и запуск всех IOC
- log ioc_name - выдать log соответствующего IOC, ожидать появления новых данных и выводить их. Завершить Ctrl-C.
- telnet ioc_name - подключиться к консоли IOC, выход по Ctrl-] q. (не надо писать exit, это перезапустит IOC).
- watch - выдать файл экспорта в одренок.
Пример вывода
[vepp4@vepp4-pult6 ~]$ v3bpmd status
ioc: localhost:4080 4P5 (pid 4622) выполняется...
ioc: localhost:4081 4P4 (pid 4627) выполняется...
ioc: localhost:4082 2P3 (pid 4632) выполняется...
ioc: localhost:4083 2P6 (pid 4637) выполняется...
ioc: localhost:4084 2P5 (pid 4642) выполняется...
ioc: localhost:4085 1P7 (pid 4647) выполняется...
ioc: localhost:4086 1P1 (pid 4652) выполняется...
ioc: localhost:4087 kserv (pid 4657) выполняется...
ioc: localhost:4088 fftvepp3 (pid 4662) выполняется...
ioc: localhost:4089 2P4 (pid 4667) выполняется...
ioc: localhost:4103 sep (pid 4672) выполняется...
ioc: localhost:4104 ksep (pid 4677) выполняется...
[vepp4@vepp4-pult6 ~]$ v4bpmd status
ioc: localhost:4050 nep0 (pid 5496) выполняется...
ioc: localhost:4051 nep1 (pid 5501) выполняется...
ioc: localhost:4052 nep3 (pid 5506) выполняется...
ioc: localhost:4053 nep4 (pid 5511) выполняется...
ioc: localhost:4054 nep5 (pid 5516) выполняется...
ioc: localhost:4055 nip1 (pid 5521) выполняется...
ioc: localhost:4056 nip3 (pid 5526) выполняется...
ioc: localhost:4057 nrp10 (pid 5531) выполняется...
ioc: localhost:4058 ntp0 (pid 5536) выполняется...
ioc: localhost:4059 sep0 (pid 5541) выполняется...
ioc: localhost:4060 sep1 (pid 5546) выполняется...
ioc: localhost:4061 sep3 (pid 5551) выполняется...
ioc: localhost:4062 sep4 (pid 5556) выполняется...
ioc: localhost:4063 sep5 (pid 5561) выполняется...
ioc: localhost:4064 sip1 (pid 5566) выполняется...
ioc: localhost:4065 sip2 (pid 5571) выполняется...
ioc: localhost:4066 srp10 (pid 5576) выполняется...
ioc: localhost:4067 stp0 (pid 5581) выполняется...
ioc: localhost:4120 stp2 (pid 5586) выполняется...
ioc: localhost:4121 stp4 (pid 5591) выполняется...
ioc: localhost:4122 srp1 (pid 5596) выполняется...
ioc: localhost:4123 srp2 (pid 5602) выполняется...
ioc: localhost:4124 srp3 (pid 5607) выполняется...
ioc: localhost:4125 srp4 (pid 5613) выполняется...
ioc: localhost:4126 srp5 (pid 5620) выполняется...
ioc: localhost:4127 srp6 (pid 5626) выполняется...
ioc: localhost:4128 srp7 (pid 5631) выполняется...
ioc: localhost:4129 srp8 (pid 5638) выполняется...
ioc: localhost:4130 srp9 (pid 5644) выполняется...
ioc: localhost:4131 srp11 (pid 5650) выполняется...
ioc: localhost:4132 srp12 (pid 5656) выполняется...
ioc: localhost:4133 srp13 (pid 5671) выполняется...
ioc: localhost:4134 srp14 (pid 5678) выполняется...
ioc: localhost:4135 srp15 (pid 5684) выполняется...
ioc: localhost:4136 srp16 (pid 5692) выполняется...
ioc: localhost:4137 srp17 (pid 5699) выполняется...
ioc: localhost:4138 nrp17 (pid 5705) выполняется...
ioc: localhost:4139 nrp16 (pid 5711) выполняется...
ioc: localhost:4140 nrp15 (pid 5719) выполняется...
ioc: localhost:4141 nrp14 (pid 5725) выполняется...
ioc: localhost:4142 nrp13 (pid 5731) выполняется...
ioc: localhost:4143 nrp12 (pid 5737) выполняется...
ioc: localhost:4144 nrp11 (pid 5743) выполняется...
ioc: localhost:4145 nrp9 (pid 5749) выполняется...
ioc: localhost:4146 nrp8 (pid 5757) выполняется...
ioc: localhost:4147 nrp7 (pid 5767) выполняется...
ioc: localhost:4148 nrp6 (pid 5776) выполняется...
ioc: localhost:4149 nrp5 (pid 5782) выполняется...
ioc: localhost:4150 nrp4 (pid 5788) выполняется...
ioc: localhost:4151 nrp3 (pid 5794) выполняется...
ioc: localhost:4152 nrp2 (pid 5802) выполняется...
ioc: localhost:4153 nrp1 (pid 5808) выполняется...
ioc: localhost:4154 ntp4 (pid 5814) выполняется...
ioc: localhost:4155 ntp2 (pid 5820) выполняется...
ioc: localhost:4070 reaper (pid 5835) выполняется...
ioc: localhost:4071 stap (pid 5851) выполняется...
ioc: localhost:4072 fftvepp4 (pid 5865) выполняется...
ioc: localhost:4073 sep_all (pid 5935) выполняется...
ioc: localhost:4074 sep_helper (pid 5947) выполняется...
[vepp4@vepp4-pult6 ~]$