目录

简介

先决条件

要求

使用的组件

配置

对于init.d

对于Systemd

验证

对于init.d

对于Systemd

故障排除

简介

本文档介绍如何为EFM(边缘雾处理模块)资产管理器创建init.d或Systemd的服务文件。

先决条件

要求

思科建议您了解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。

创建文件后，确保将其标记为可执行文件。

对于Systemd

[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=。

在创建服务文件后，请确保在systemmd中更新守护程序文件:

[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

对于Systemd

[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的输出