আমি কীভাবে উবুন্টু 16.04-এ প্রারম্ভকালে মোসকিটো এমকিউটিটি ব্রোকারটি শুরু করব


10

আমি উবুন্টু ১.0.০৪-তে একটি মশক্টো এমকিউটিটি ব্রোকার চালানোর চেষ্টা করছি। আমার কাছে ১৪.০৪ থেকে নির্দেশ রয়েছে, তবে ১.0.০৪ সাল থেকে আর আরম্ভ হয় না, আমি কীভাবে সিস্টেমেডে রূপান্তর করব তা বুঝতে পারি না।

14.04 এর জন্য এখানে আদেশগুলি রয়েছে:

description "Mosquitto MQTT broker"
start on net-device-up
respawn
exec /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

সম্পাদনা করুন:

এটাই আমি এ পর্যন্ত পেয়েছি। আমি যখন পুনরায় বুট করি এবং চালনা systemctl status mosquitto.serviceকরি তখন দেখাব যে মশারি লোড হয়েছে তবে সক্রিয় নয়:

[Unit]
Description=Mosquitto MQTT Broker

[Service]
WorkingDirectory=/usr/sbin/mosquitto
ExecStart=/etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

সম্পাদনা 2:

রান sudo systemctl enable mosquitto.service। এখন ত্রুটির প্রস্থান কোডটি হ'ল:

Process: 1720 ExecStart=/etc/mosquitto/mosquitto.conf (code=exited, status=200/CHDIR)

উত্তর:


9

ইনস্টল করার প্রক্রিয়া sudo apt install mosquittoউপর 16.04যোগ /etc/init.d/mosquittoস্ক্রিপ্ট। সিস্টেমডিপি স্ক্রিপ্টটি উত্পন্ন করতে ব্যবহার করে /run/systemd/generator.late/mosquitto.serviceএবং এটি যা বলে:

# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/mosquitto
Description=LSB: mosquitto MQTT v3.1 message broker
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
Before=shutdown.target
After=remote-fs.target
After=systemd-journald-dev-log.socket
Conflicts=shutdown.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/mosquitto start
ExecStop=/etc/init.d/mosquitto stop
ExecReload=/etc/init.d/mosquitto reload

ভিতরে খুঁজছেন /etc/init.d/mosquittoআমাদের জানায় যে

/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf ইতিমধ্যে ডিফল্ট দ্বারা চালিত হয়

সুতরাং আপনার কনফিগারেশনটি কেবল এতে রেফার করুন /etc/mosquitto/conf.d(উপস্থাপিত mosquitto.conf) এবং উপভোগ করুন


নিয়মিত সিস্টেমড সার্ভিস হওয়ার কারণে আপনি এটি করতে পারেন:

  • systemctl status mosquitto তার বর্তমান অবস্থা দেখতে
  • sudo systemctl (start|stop) mosquitto বর্তমান সেশনের স্থিতি পরিবর্তন করতে
  • sudo systemctl (enable|disable) mosquitto প্রারম্ভিক আচরণ পরিবর্তন করতে (বর্তমান অবস্থা প্রভাবিত না করে)

এই ফাইলটি আপনাকে কীভাবে বলতে পারে যে মশা চলছে -c option?
পেট্রাস থেরন

@ পেট্রুথেরন যুক্তি /etc/init.d/mosquittoদিয়ে ফাইলের মধ্যে যা ঘটে তা start
মিহাইল মালোস্টানিডিস

/etc/mosquitto/conf.dদির ভিতরে আমার কনফিগারেশন উপেক্ষা করা হবে বলে মনে হচ্ছে। আমি কীভাবে নতুন করে তৈরি করতে পারি /run/systemd/generator.late/mosquitto.service?
ক্রিস

@ ক্রিস সম্ভবত এটি রেফারেন্স নেই /etc/mosquitto/mosquitto.conf? সেখানে কি আছে?
মিহাইল মালোস্টানিডিস

0

আপনার ইউনিট ফাইল ExecStart=এবং WorkingDirectory=লাইন সম্পূর্ণ ভুল। এক্সিকিউটেবল ফাইল (!) কে এর ওয়ার্কিং ডিরেক্টরি হিসাবে ব্যবহার করে আপনি কোনও কনফিগার ফাইল শুরু করার চেষ্টা করছেন?

আমি যদি সঠিকভাবে বুঝতে পারি তবে সঠিক ইউনিট ফাইলটি হ'ল:

[Unit]
Description=Mosquitto MQTT Broker
After=network.target

[Service]
ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

এছাড়াও, দয়া করে ইউনিটটি শুরু এবং সক্ষম করে তুলবেন না। এই সম্পর্কে আমার অনুরূপ উত্তর পড়ুন:


0

আপনার মশারি চলছে তা নিশ্চিত হয়ে নিন:

ps -aux | grep mosquitto

এবং এটি আপনার ডিফল্ট কনটনে রয়েছে :

listener 1883
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.