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 gestor de recursos EFM (Edge Fog Processing Module).

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento de Linux.

Componentes Utilizados

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

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. 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 out from box.

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.

Después de crear 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 verificar si los scripts/archivo de servicio funcionan 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 pida que detenga los servicios.

Troubleshoot

En caso de que experimente problemas para comenzar, verifique lo siguiente:

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

- Para SystemD: El resultado de systemctl status efm-assetmanager

- El resultado de journalctl —unit=efm-assetmanager