Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Configurar

Para init.d

Para Systemd

Verificación

Para init.d

Para Systemd

Troubleshoot

Introducción

Este documento describe cómo crear archivos de servicio para init.d o Systemd para el administrador de activos EFM (Edge Fog Processing Module).

Prerequisites

Requirements

Cisco recomienda que tenga conocimientos de Linux.

Componentes Utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Configurar

El paquete de instalación de EFM no contiene archivos de servicio para init.d o Systemd desde el primer momento.

Aquí puede encontrar un ejemplo sencillo para crear un archivo de servicio para el componente Asset Manager de EFM.

Para 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

Asegúrese de ajustar las variables de entorno para que coincidan con su entorno: ASSETMANAGER_HOME y ASSETMANAGER_USER.

Una vez creado el archivo, asegúrese de que está marcado como ejecutable.

Para 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

Asegúrese de ajustar las variables de configuración para que coincidan con su entorno: User=.

Después de crear el archivo de servicio, asegúrese de actualizar los archivos daemon en systemd:

[root@cen7 ~]# systemctl daemon-reload

Verificación

Para comprobar si el archivo de servicios/scripts funciona como se esperaba, puede intentar iniciar y detener el servicio:

Para 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

Para 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

Como puede ver, los procesos de EFM Asset Manager se inician bajo el usuario que definió en los archivos de servicio y todo se limpia después de que se le solicite detener los servicios.

Troubleshoot

En caso de que tenga problemas para comenzar, marque estos:

- Parámetros configurables en el archivo de servicio init.d o Systemd (usuario, rutas)

- Para SystemD: La salida del estado de systemctl efm-asset manager

- El resultado de journalctl —unit=efm-assetmanager