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