内容

はじめに

前提条件

要件

使用するコンポーネント

設定

init.dの場合

Systemd用

確認

init.dの場合

Systemd用

トラブルシュート

はじめに

このドキュメントでは、EFM(Edge Fog Processing Module)アセットマネージャのinit.dまたはSystemdのサービスファイルを作成する方法について説明します。

前提条件

要件

Linuxに関する知識があることが推奨されます。

使用するコンポーネント

このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

設定

EFMインストールパッケージには、デフォルトでinit.dまたはSystemd用のサービスファイルは含まれていません。

ここでは、EFMのAsset Managerコンポーネント用のサービスファイルを作成する簡単な例を示します。

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

環境変数ASSETMANAGER_HOMEとASSETMANAGER_USERが環境に合うように調整されていることを確認します。

ファイルが作成されたら、実行可能ファイルとしてマークされていることを確認します。

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

ご使用の環境に合わせて設定変数User=を調整してください。

サービスファイルを作成した後、systemdでデーモンファイルを更新したことを確認します。

[root@cen7 ~]# systemctl daemon-reload

確認

スクリプトまたはサービスファイルが期待どおりに動作するかどうかを確認するには、サービスを開始および停止します。

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

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

このように、サービスファイルで定義したユーザの下でEFM Asset Managerプロセスが開始され、サービスの停止が要求された後に、すべてがクリーンアップされます。

トラブルシュート

開始に関する問題が発生した場合は、次の点を確認してください。

- init.dまたはSystemdサービスファイルの構成可能なパラメータ（ユーザー、パス）

- SystemD: systemctl status efm-assetmanagerの出力

- journalctl —unit=efm-assetmanagerの出力