Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Configurazione

Per init.d

Per System

Verifica

Per init.d

Per System

Risoluzione dei problemi

Introduzione

In questo documento viene descritto come creare file di servizio per init.d o Systemd per EFM (Edge Fog Processing Module) Asset Manager.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza di Linux.

Componenti usati

Il documento può essere consultato per tutte le versioni software o hardware.

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Configurazione

Il pacchetto di installazione di EFM non contiene file di servizio per init.d o Systemed preconfigurati.

In questa sezione è possibile trovare un semplice esempio per creare un file di servizio per il componente Asset Manager di EFM.

Per 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

Accertarsi di regolare le variabili di ambiente in modo che corrispondano al proprio ambiente: ASSETMANAGER_HOME e ASSETMANAGER_USER.

Dopo aver creato il file, assicurarsi che sia contrassegnato come eseguibile.

Per System

[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

Accertarsi di regolare le variabili di configurazione in base all'ambiente: User=.

Dopo aver creato il file di servizio, accertarsi di aggiornare i file daemon in systemd:

[root@cen7 ~]# systemctl daemon-reload

Verifica

Per verificare se gli script/file di servizio funzionano come previsto, è possibile provare ad avviare e arrestare il servizio:

Per 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

Per System

[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

Come si può vedere, i processi di EFM Asset Manager vengono avviati sotto l'utente definito nei file del servizio e tutto viene pulito dopo che è stato richiesto di arrestare i servizi.

Risoluzione dei problemi

In caso di problemi, verificare quanto segue:

- Parametri configurabili nel file init.d o nel file di servizio di sistema (utente, percorsi)

- Per SystemD: output dello stato systemctl efm-assetmanager

- Output di journalctl —unit=efm-assetmanager