应用背景:为防止服务器经断电之后需要人为重新设定的情况
一、在BIOS中设置服务器掉电后重启
开机后按 Delete 进入BIOS,将 chipset--> Restore AC Power Loss 设置选项为Power on。

二、 IOC开机自启动
1、安装screen工具
yum install screen // 直接安装
rpm -ivh screen-4.0.3-18.e16.x86_64.rpm // 从安装包安装
安装完成后使用 screen -version 查看版本信息
2、修改screen文件执行权限
chmod u=rwx,g=rwx,o=rwx /usr/bin/screen
chmod u=rwx,g=rx,o=rx /var/run/screen3、编辑epics-IOC脚本文件
#!/bin/sh
#
# chkconfig: - 99 35
# description: Starts and stops EPICS IOC.
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
case "$1" in
start)
echo -n "Starting EPICS IOC"
export EPICS_HOST_ARCH=linux-x86_64
export LD_LIBRARY_PATH=/opt/epics/base-3.15.5/lib/linux-x86_64
export PATH=$PATH:/opt/epics/base-3.15.5/bin/linux-x86_64:/opt/epics/app/smsPowerSupply/bin/linux-x86_64
cd /opt/epics/app/smsPowerSupply/iocBoot/iocsms
#echo -n "Starting run st.cmd"
screen -d -m -S ioc -h 1000 ./st.cmd
echo -n "finished run st.cmd"
#screen -d -m -S ioc -h 1000 /usr/local/EPICS/IOC_Digital_PS/iocBoot/iocIOC_Digital_PS/st.cmd
echo "."
;;
stop)
echo -n "Stopping EPICS IOC"
/usr/bin/killall -9 st.cmd
unset EPICS_HOST_ARCH
echo "."
;;
reload)
echo "Not implemented."
;;
force-reload|restart)
sh $0 stop
sh $0 start
;;
*)
echo "Usage: /etc/init.d/epics-IOC
Unknown macro: {start|stop|restart|force-reload|reload}
"
exit 1
;;
esac
将 export 和 cd 后的路径修改为自启动IOC对应的路径
4、将epics-IOC脚本文件拷贝至etc/init.d/目录下并修改执行权限
cp epics-IOC /etc/init.d
chmod a+x epics-IOC 5、将epics-IOC加入到系统启动服务
chkconfig --level 345 epics-IOC on注:chkconfig用于检查和设定系统的各种服务,常用命令为下列两种:
chkconfig [--add][--del][--list][系统服务] // 增加、删除、罗列出
或
chkconfig [--level <等级代号>][系统服务][on/off/reset] // 设置服务在指定运行等级中的运行状态注:linux共有7中运行等级,编号依次为0-6,0:关机,1:仅root登录,2:无NFS(网络文件系统)支持的多用户模式,3:完整的多用户模式(支持NFS),4:未使用,5:图形交互模式, 6:重启模式。
6、重启系统,用ps a查看后台是否有st.cmd进程运行;
7、切换到root用户后使用 screen -r 进入自启动IOC的shell交互环境,交互结束后使用ctrl+A组合键再按D离开IOC shell环境(IOC仍在后台执行)。
注:ctrl+A 再按D的过程一定要快,不然会终止IOC进程。
版权声明:本文为m0_57605764原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。