简介
本文档介绍如何为EFM(边缘雾处理模块)资产管理器创建init.d或Systemd的服务文件。
先决条件
要求
Cisco建议您应具备Linux知识。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
EFM安装软件包不包含init.d或Systemd开箱即用的服务文件。
在这里可以找到为EFM的资产管理器组件创建服务文件的简单示例。
对于init.d
[root@cen7 ~]# cat /etc/init.d/assetmanager
#!/bin/bash
# parstream init script.
ASSETMANAGER_HOME="/opt/cisco/kinetic/asset_manager/"
ASSETMANAGER_USER="EFM"
case "$1" in
'start')
echo "Starting EFM Asset Manager daemon as user $ASSETMANAGER_USER"
sleep 2
su -c "cd $ASSETMANAGER_HOME;$ASSETMANAGER_HOME/bin/start.sh" $ASSETMANAGER_USER
;;
'stop')
echo "Stopping EFM Asset Manager daemons for user $ASSETMANAGER_USER"
su -c "cd $ASSETMANAGER_HOME;$ASSETMANAGER_HOME/bin/stop.sh" $ASSETMANAGER_USER
;;
*)
# usage
echo "usage: $0 start|stop"
exit 1
;;
esac
确保调整环境变量以匹配您的环境:ASSETMANAGER_HOME和ASSETMANAGER_USER。
创建文件后,请确保将其标记为可执行文件。
对于系统Md
[root@cen7 ~]# cat /etc/systemd/system/efm-assetmanager.service
[Unit]
Description=EFM Asset Manager
After=network.target
[Service]
Type=forking
User=EFM
WorkingDirectory=/opt/cisco/kinetic/asset_manager/
ExecStart=/opt/cisco/kinetic/asset_manager/bin/start.sh
ExecStop=/opt/cisco/kinetic/asset_manager/bin/stop.sh
[Install]
WantedBy=multi-user.target
确保调整配置变量以匹配您的环境:User=。
创建服务文件后,请确保更新systemd中的守护程序文件:
[root@cen7 ~]# systemctl daemon-reload
验证
要验证脚本/服务文件是否按预期工作,您可以尝试启动和停止服务:
对于init.d
[root@cen7 ~]# /etc/init.d/assetmanager start
Starting EFM Asset Manager daemon as user EFM
[root@cen7 ~]# nohup: redirecting stderr to stdout
[root@cen7 ~]# /etc/init.d/assetmanager stop
Stopping EFM Asset Manager daemons for user EFM
对于系统Md
[root@cen7 ~]# systemctl start efm-assetmanager
[root@cen7 ~]#
[root@cen7 ~]# systemctl status efm-assetmanager
● efm-assetmanager.service - EFM Asset Manager
Loaded: loaded (/etc/systemd/system/efm-assetmanager.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2018-04-24 02:54:16 CEST; 5s ago
Process: 45098 ExecStop=/opt/cisco/kinetic/asset_manager/bin/stop.sh (code=exited, status=0/SUCCESS)
Process: 45235 ExecStart=/opt/cisco/kinetic/asset_manager/bin/start.sh (code=exited, status=0/SUCCESS)
Main PID: 45238 (java)
CGroup: /system.slice/efm-assetmanager.service
└─45238 java -classpath /opt/cisco/kinetic/asset_manager/lib/efm-servicelayer-1.5.0.12-fat.jar com.cisco.efm.application.ApplicationStarter
Apr 24 02:54:16 cen7 systemd[1]: Starting EFM Asset Manager...
Apr 24 02:54:16 cen7 systemd[1]: Started EFM Asset Manager.
[root@cen7 ~]#
[root@cen7 ~]# systemctl stop efm-assetmanager
如您所见,EFM资产管理器进程在服务文件中定义的用户下启动,并且在请求停止服务后一切都被清除。
故障排除
如果遇到要启动的问题,请检查以下项:
- init.d或Systemd服务文件中的可配置参数(用户、路径)
- 对于SystemD:systemctl status efm-assetmanager的输出
- journalctl —unit=efm-assetmanager的输出