Introduction
Este documento descreve como criar arquivos de serviço para init.d ou System para o Gerenciador de Ativos do EFM (Edge Fog Processing Module).
Prerequisites
Requirements
A Cisco recomenda que você conheça o Linux.
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas.
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. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Configurar
O pacote de instalação do EFM não contém arquivos de serviço para init.d ou System prontos para uso.
Aqui você pode encontrar um exemplo simples para criar um arquivo de serviço para o componente Asset Manager do 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
Assegure-se de ajustar as variáveis de ambiente para corresponder ao ambiente: ASSETMANAGER_HOME e ASSETMANAGER_USER.
Depois que o arquivo for criado, verifique se ele está marcado como executável.
Para o sistema
[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
Assegure-se de ajustar as variáveis de configuração para corresponder ao seu ambiente: User=.
Depois que o arquivo de serviço for criado, certifique-se de atualizar os arquivos daemon em systemd:
[root@cen7 ~]# systemctl daemon-reload
Verificar
Para verificar se os scripts/arquivos de serviço funcionam conforme esperado, você pode tentar iniciar e interromper o serviço:
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 o sistema
[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 você pode ver, os processos do EFM Asset Manager são iniciados sob o usuário que você definiu nos arquivos de serviço e tudo é limpo depois de ser solicitado a interromper os serviços.
Troubleshoot
Caso tenha problemas para começar, verifique estes:
- Parâmetros configuráveis no arquivo de serviço init.d ou System (usuário, caminhos)
- Para SystemD: A saída de systemctl status efm-assetmanager
- A saída de journalctl — unit=efm-assetmanager