المقدمة
يوضح هذا المستند كيفية إنشاء ملفات خدمة ل init.d أو System ل EFM (وحدة معالجة Edge Fog) Asset Manager.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بنظام التشغيل Linux.
المكونات المستخدمة
لا يقتصر هذا المستند على إصدارات برامج ومكونات مادية معينة.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
التكوين
لا تحتوي حزمة تثبيت EFM على ملفات خدمة ل init.d أو Systemd خارج المربع.
هنا يمكنك العثور على مثال بسيط لإنشاء ملف خدمة لمكون مدير الأصول في EFM.
ل 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=.
بعد إنشاء ملف الخدمة، تأكد من أنك قمت بتحديث ملفات الأداة المساعدة في النظام:
[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 تحت إشراف المستخدم الذي قمت بتعريفه في ملفات الخدمة، ويتم تنظيف كل شيء بعد أن يتم طلبه لإيقاف الخدمات.
استكشاف الأخطاء وإصلاحها
في حالة حدوث مشاكل للبدء، تحقق من ما يلي:
- المعلمات القابلة للتكوين في ملف خدمة init.d أو SystemD (المستخدم والمسارات)
- بالنسبة لنظام SystemD: إخراج وضع EFM-AssetManager للنظام
- إخراج JournalCtl — unit=efm-assetmanager