Introdução
Este documento descreve como criar arquivos de serviço para init.d ou Systemd para o gerenciador de ativos do EFM (Edge Fog Processing Module).
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento do Linux.
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. 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 Systemd prontos para uso.
Aqui você pode encontrar um exemplo simples para criar um arquivo de serviço para o componente Gerenciador de ativos 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
Certifique-se de ajustar as variáveis de ambiente para corresponder ao seu ambiente: ASSETMANAGER_HOME e ASSETMANAGER_USER.
Depois que o arquivo for criado, verifique se ele está marcado como executável.
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
Certifique-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 o arquivo de scripts/serviço funciona como esperado, você pode tentar iniciar e parar 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 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 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 que é solicitado para interromper os serviços.
Troubleshooting
Caso tenha problemas para iniciar, verifique:
- Parâmetros configuráveis no arquivo de serviço init.d ou Systemd (usuário, caminhos)
- Para SystemD: a saída de systemctl status efm-assetmanager
- A saída de journalctl —unit=efm-assetmanager