Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konfigurieren

Für init.d

Für Systemd

Überprüfen

Für init.d

Für Systemd

Fehlerbehebung

Einführung

In diesem Dokument wird beschrieben, wie Sie Servicedateien für init.d oder System for EFM (Edge Fog Processing Module) erstellen.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie Linux kennen.

Verwendete Komponenten

Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

Konfigurieren

Das EFM-Installationspaket enthält keine Servicedateien für init.d oder System.

Hier finden Sie ein einfaches Beispiel zum Erstellen einer Servicedatei.

Für init.d

[root@cen7 ~]# cat /etc/init.d/efm

#!/bin/bash

# EFM init script.

EFM_HOME="/opt/cisco/kinetic/efm_server"

EFM_USER="EFM"

case "$1" in

'start')

echo "Starting EFM as $EFM_USER"

sleep 2

su -c "$EFM_HOME/bin/daemon.sh start" $EFM_USER

;;

'stop')

echo "Stopping EFM as $EFM_USER"

su -c "$EFM_HOME/bin/daemon.sh stop" $EFM_USER

;;

*)

# usage

echo "usage: $0 start|stop"

exit 1

;;

esac

Stellen Sie sicher, dass Sie die Umgebungsvariablen an Ihre Umgebung anpassen: EFM_HOME und EFM_USER.

Nachdem die Datei erstellt wurde, stellen Sie sicher, dass sie als ausführbare Datei markiert ist.

Für Systemd

[root@cen7 ~]# cat /etc/systemd/system/efm.service

[Unit]

Description=EFM

After=network.target

[Service]

Type=forking

User=EFM

WorkingDirectory=/opt/cisco/kinetic/efm_server/

ExecStart=/opt/cisco/kinetic/efm_server/bin/daemon.sh start

Restart=no

GuessMainPID=yes

[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 Daemon-Dateien im System aktualisieren:

[root@cen7 ~]# systemctl daemon-reload

Überprüfen

Um zu überprüfen, ob die Skripte/Servicedatei wie erwartet funktioniert, können Sie versuchen, den Dienst zu starten und zu beenden:

Für init.d

[root@cen7 ~]# /etc/init.d/efm start

Starting EFM as EFM

DSA Version: 1.1.2

DGLux5 Build: r7914

DGLux Server Build: 1230

Verifying Environment...

Verifying Configuration...

Server Started. (pid: 3790)

...

[root@cen7 ~]# /etc/init.d/efm stop

Stopping EFM as EFM

Server Stopped.

Für Systemd

[root@cen7 ~]# systemctl start efm

[root@cen7 ~]#

[root@cen7 ~]# systemctl status efm

● efm.service - EFM

Loaded: loaded (/etc/systemd/system/efm.service; disabled; vendor preset: disabled)

Active: active (running) since Mon 2018-04-23 17:01:22 CEST; 4s ago

Process: 5725 ExecStart=/opt/cisco/kinetic/efm_server/bin/daemon.sh start (code=exited, status=0/SUCCESS)

Main PID: 5737 (dart)

CGroup: /system.slice/efm.service

├─5737 /opt/cisco/kinetic/dart-sdk/bin/dart --old_gen_heap_size=16 --new_gen_semi_max_size=2 /opt/cisco/kinetic/efm_server/bin/server_watcher.dart --log-file=logs/dglux_server.log --manager-port...

├─5746 /opt/cisco/kinetic/dart-sdk/bin/dart -Ddglux.server.watcher=true -Ddslink.runtime.manager=true -Ddglux.server.log=/opt/cisco/kinetic/efm_server/logs/dglux_server.log --old_gen_heap_size=1...

├─5785 java -classpath /opt/cisco/kinetic/efm_server/dslinks/Alarms/lib/dslink-0.18.3.jar:/opt/cisco/kinetic/efm_server/dslinks/Alarms/lib/jcommander-1.48.jar:/opt/cisco/kinetic/efm_server/dslin...

├─5788 /opt/cisco/kinetic/dart-sdk/bin/dart bin/run.dart --name DQL --log info --broker http://127.0.0.1:35294/conn --token DpKbOMophIePrJvdGpXyt1H0RpcM8g8hkPXyDqaEIVwIQLzF

├─5794 java -classpath /opt/cisco/kinetic/efm_server/dslinks/H2_DB/lib/jcommander-1.48.jar:/opt/cisco/kinetic/efm_server/dslinks/H2_DB/lib/commons-dbcp2-2.1.1.jar:/opt/cisco/kinetic/efm_server/d...

├─5801 /opt/cisco/kinetic/dart-sdk/bin/dart run.dart --name dataflow --broker http://127.0.0.1:35294/conn --token nkH3JEA12v82GthaCsb9IfAL0iMWJNaYtiuRA7ruB28T7jdf

├─5803 /opt/cisco/kinetic/dart-sdk/bin/dart bin/run.dart --name System --linux_use_free_command true --offset_memory_disk_cache true --broker http://127.0.0.1:35294/conn --token OSkQvkA3diq3OLtw...

└─5826 java -d64 -Djava.library.path=/opt/cisco/kinetic/efm_server/dslinks/parstream-dsa-link/lib/centos7 -classpath lib/bcprov-jdk15on-1.51.jar:lib/cisco-parstream-jdbc-5.0.0.jar:lib/commons-cs...

Apr 23 17:01:22 cen7 systemd[1]: Starting EFM...

Apr 23 17:01:22 cen7 daemon.sh[5725]: DSA Version: 1.1.2

Apr 23 17:01:22 cen7 daemon.sh[5725]: DGLux5 Build: r7914

Apr 23 17:01:22 cen7 daemon.sh[5725]: DGLux Server Build: 1230

Apr 23 17:01:22 cen7 daemon.sh[5725]: Verifying Environment...

Apr 23 17:01:22 cen7 daemon.sh[5725]: Verifying Configuration...

Apr 23 17:01:22 cen7 daemon.sh[5725]: Server Started. (pid: 5737)

Apr 23 17:01:22 cen7 systemd[1]: Started EFM.

[root@cen7 ~]#

[root@cen7 ~]# systemctl stop efm

Wie Sie sehen können, werden die EFM-Prozesse unter dem in den Dienstdateien definierten Benutzer gestartet und alles wird bereinigt, nachdem der Dienst angefordert wurde.

Fehlerbehebung

Falls Probleme auftreten, überprüfen Sie Folgendes:

- Konfigurierbare Parameter in der init.d- oder Systemd-Servicedatei (Benutzer, Pfade)

- Für SystemD: Die Ausgabe des Systemstatusefms

- Die Ausgabe von journalctl —unit=efm