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