はじめに
このドキュメントでは、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の出力