আমার সিস্টেমড ইউনিট কেন লোড করা হয়েছে, তবে নিষ্ক্রিয় (মৃত)?


29

আমি আমার সার্ভারে গ্রাফাইট সেট আপ করার চেষ্টা করছি । আমি কার্বন ক্যাশে sudo /opt/graphite/bin/carbon-cache.py startডিমনটি কোনও সমস্যা না করে শুরু করতে পারি , তবে আমি এটি সিস্টেমড ইউনিট হিসাবে চালানোর জন্য লড়াই করছি।

আমার পরিষেবা ফাইলে আমার যা আছে তা এখানে graphite.service:

[Unit]
Description=Carbon for Graphite

[Service]
ExecStart=/opt/graphite/bin/carbon-cache.py start

[Install]
WantedBy=multi-user.target

তবে যখন আমি ইউনিটটি শুরু করি আমি নিম্নলিখিত স্থিতিটি পাই:

$ systemctl status graphite.service            
* graphite.service - Carbon for Graphite
   Loaded: loaded (/etc/systemd/system/graphite.service; enabled)
   Active: inactive (dead) since Fri 2014-06-13 18:44:11 UTC; 2s ago
  Process: 4525 ExecStart=/opt/graphite/bin/carbon-cache.py start (code=exited, status=0/SUCCESS)
 Main PID: 4525 (code=exited, status=0/SUCCESS)

Jun 13 18:44:11 MEADOW systemd[1]: Started Carbon for Graphite.

জার্নাল্টেল আর কোনও তথ্য দেয় না।

"নিষ্ক্রিয় (মৃত) ... (কোড = উপস্থিত, স্থিতি = 0 / সফলতা)" এর স্ট্যাটাসের সাথে ইউনিটগুলি কীভাবে ব্যাখ্যা এবং ডিবাগ করব? আমি এর আগে ব্যর্থ ইউনিট দেখেছি, তবে এটি সফলভাবে লোড হয়েছে এখনও চলছে না এবং এর অর্থ কী তা আমি জানি না।


4
এর অর্থ সিস্টেমড তার কাজ শেষ করেছে। Type=বিকল্প থাকা উচিত নয় ? man systemd.serviceএকটি উপযুক্ত ধরণের জন্য দেখুন ।
জেসনওয়ারিয়ান

1
এটা বোধগম্য. আমাকে যা করতে হয়েছিল Type=forkingতা [Service]বিভাগে যুক্ত হয়েছিল ।
Ryne এভারেট

উত্তর:


26

প্রতি জেসনওয়ারিয়ান এর মন্তব্যে, যখন ডিফল্ট Type=simpleঅনেকগুলি সিস্টেমড সার্ভিস ফাইলে কাজ করে, স্ক্রিপ্টে ExecStartঅন্য কোনও প্রক্রিয়া আরম্ভ করে এবং সম্পূর্ণ হয়, তখন গ্রাফাইটের কার্বন-ক্যাশে.পি-র ক্ষেত্রে যেমন কাজ হয় তখন এটি কাজ করে না । এইসব ক্ষেত্রে আপনি স্পষ্টভাবে নির্দিষ্ট করতে হবে Type=forking[Service]অধ্যায় যাতে systemd প্রাথমিক এক উত্পন্ন হওয়া প্রক্রিয়া বদলে তাকান জানেন।

হিসাবে ব্যাখ্যা করা হয়েছে man systemd.service:

যদি ফোর্কিংয়ে সেট করা থাকে, তবে আশা করা যায় যে এক্সিকিস্টার্ট = দিয়ে কনফিগার করা প্রক্রিয়াটি তার শুরু হওয়ার অংশ হিসাবে কাঁটাচামচ () কল করবে। স্টার্ট-আপ সম্পূর্ণ হয়ে গেলে এবং সমস্ত যোগাযোগের চ্যানেলগুলি সেট আপ হয়ে গেলে পিতামাতার প্রক্রিয়াটি প্রস্থান করার আশা করা হয়। শিশুটি মূল ডেমন প্রক্রিয়া হিসাবে চালিয়ে যেতে থাকে। Traditionalতিহ্যবাহী ইউনিক্স ডেমনগুলির আচরণ এটি ons যদি এই সেটিংটি ব্যবহার করা হয়, তবে এটি পিআইডি ফাইল = অপশনটি ব্যবহার করারও পরামর্শ দেওয়া হয়, যাতে সিস্টেমড ডিমনটির মূল প্রক্রিয়াটি সনাক্ত করতে পারে। সিস্টেমেড পিতামাতার প্রক্রিয়াটি শেষ হওয়ার সাথে সাথে ফলো-আপ ইউনিট শুরু করার সাথে এগিয়ে যাবে।

গ্রাফাইট-নির্দিষ্ট উত্তর

উপরেরগুলি আমার সিস্টেমেড সমস্যাটি সমাধান করার সময় আমি দ্রুত গ্রাফাইট-নির্দিষ্ট সমস্যাগুলিতে ছুটে এসেছি (টুইস্টযুক্ত) এবং ডিফল্টে ফিরে এসে শেষ করেছি Type

গ্রাফাইট <0.9.12

গ্রাফাইটের পূর্ববর্তী সংস্করণগুলিতে কেবলমাত্র --debugবিকল্পটি ব্যবহার করে কাঁটাচামচ করা এড়ানো যেতে পারে :

[Service]
ExecStart=/opt/graphite/bin/carbon-cache.py --debug start

গ্রাফাইট> = 0.9.13

ইন এই টান অনুরোধ একটি --no-daemonবিকল্প মার্জ করা হয়েছে:

[Service]
ExecStart=/opt/graphite/bin/carbon-cache.py --no-daemon start
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.