Einleitung
In diesem Dokument wird beschrieben, wie Service-Dateien für init.d oder System für den EFM (Edge Fog Processing Module) Asset Manager erstellt werden.
Voraussetzungen
Anforderungen
Cisco empfiehlt, Linux zu kennen.
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Konfigurieren
Das EFM-Installationspaket enthält keine Service-Dateien für init.d oder System.
Hier finden Sie ein einfaches Beispiel zum Erstellen einer Servicedatei für die Asset Manager-Komponente von EFM.
Für 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
Passen Sie die Umgebungsvariablen an Ihre Umgebung an: ASSETMANAGER_HOME und ASSETMANAGER_USER.
Nachdem die Datei erstellt wurde, stellen Sie sicher, dass sie als ausführbar markiert ist.
Für 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
Stellen Sie sicher, dass Sie die Konfigurationsvariablen an Ihre Umgebung anpassen: User=.
Nachdem die Dienstdatei erstellt wurde, stellen Sie sicher, dass Sie die Daemondateien in systemd aktualisieren:
[root@cen7 ~]# systemctl daemon-reload
Überprüfung
Um zu überprüfen, ob die Skripts/Dienstdatei wie erwartet funktionieren, können Sie versuchen, den Dienst zu starten und zu beenden:
Für 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
Für 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
Wie Sie sehen können, werden die EFM Asset Manager-Prozesse unter dem Benutzer gestartet, den Sie in den Service-Dateien definiert haben, und alles wird bereinigt, nachdem angefordert wurde, die Services zu stoppen.
Fehlerbehebung
Falls Probleme beim Starten auftreten, überprüfen Sie Folgendes:
- Konfigurierbare Parameter in der init.d oder Systemd Service-Datei (Benutzer, Pfade)
- Für SystemD: Die Ausgabe von systemctl status efm-assetmanager
- Die Ausgabe von journalctl —unit=efm-assetmanager