Introduction
Ce document décrit comment créer des fichiers de service pour init.d ou Systemd pour EFM (Edge Fog Processing Module) Asset Manager.
Conditions préalables
Exigences
Cisco vous recommande d'avoir des connaissances sur Linux.
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
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 votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Configurer
Le package d'installation d'EFM ne contient pas de fichiers de service pour init.d ou System prêts à l'emploi.
Vous trouverez ici un exemple simple pour créer un fichier de service pour le composant Asset Manager d'EFM.
Pour 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
Veillez à ajuster les variables d'environnement en fonction de votre environnement : ASSETMANAGER_HOME et ASSETMANAGER_USER.
Une fois le fichier créé, assurez-vous qu'il est marqué comme exécutable.
Pour le système
[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
Veillez à ajuster les variables de configuration en fonction de votre environnement : User=.
Une fois le fichier de service créé, assurez-vous que vous mettez à jour les fichiers démon dans systemd :
[root@cen7 ~]# systemctl daemon-reload
Vérifier
Pour vérifier si les scripts/fichiers de service fonctionnent comme prévu, vous pouvez essayer de démarrer et d'arrêter le service :
Pour 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
Pour le système
[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
Comme vous pouvez le voir, les processus d'EFM Asset Manager démarrent sous l'utilisateur que vous avez défini dans les fichiers de service et tout est nettoyé après qu'il a été demandé d'arrêter les services.
Dépannage
Si vous rencontrez des problèmes au début, vérifiez les points suivants :
- Paramètres configurables dans le fichier de service init.d ou System (utilisateur, chemins)
- Pour SystemD : sortie de systemctl status efm-assetmanager
- Le résultat de journalctl —unit=efm-assetmanager