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