প্রশ্ন systemd ExecStartPost বলা হবে না চেহারা


আমি শুরু করতে নিম্নলিখিত কনফিগারেশন ব্যবহার beanstalkd প্রক্রিয়া

[Service]
ExecStart=/usr/local/bin/beanstalkd 
ExecStartPost=pgrep beanstalkd > /var/run/beanstalkd.pid

শেষ লাইনটি প্রক্রিয়াকরণের পরে একটি পডফিল তৈরি করতে অনুমিত হয় তবে ফাইল তৈরি করা হয় না। কেন?

অথবা pidfile সৃষ্টিকে জোরদার করার অন্য উপায় আছে systemd ?


5
2018-03-02 23:33


উত্স




উত্তর:


systemd একটি টাইপ = সহজ সেবা জন্য একটি পিনফিল প্রয়োজন হয় না। এটি সম্মুখভাগে ডেমন পরিচালনা করবে। systemctl status SERVICE_NAME প্রধান প্রক্রিয়া (এবং cgroup মধ্যে অন্য কোন প্রসেস) এর পিন প্রদর্শন করা হবে।

সম্পূর্ণতার জন্য, আপনার ExecStartPost লাইনটি কাজ করেনি কারণ systemd কমান্ড চালানোর জন্য শেল ব্যবহার করে না এবং $ PATH লুকআপ সঞ্চালন করে না, তাই আপনাকে ব্যবহার করতে হবে ExecStartPost=/bin/sh -c "...", কিন্তু আমি বলেছি, লাইন অপ্রয়োজনীয়।


9
2018-03-03 05:06



এটা কাজ করে আপনাকে ধন্যবাদ। আমি জানি systemd একটি pidfile প্রয়োজন হয় না, কিন্তু আমি প্রক্রিয়া পর্যবেক্ষণ নিরীক্ষণ করতে চান monit - jney


যদি আপনার এখনও এই (অথবা অন্য কেউ করে) কোনও উত্তর দেওয়ার প্রয়োজন হয়, তাহলে pgrep চালানোর জন্য আপনার একটি শেল প্রসঙ্গ প্রয়োজন হবে, তাই সঠিক কমান্ডটি হবে

ExecStartPost=/usr/bin/zsh -c 'pgrep process_name > /var/run/process_name.pid'

2
2017-11-12 12:30



আমি "sh" ব্যবহার করার সুপারিশ করি কারণ এটি প্রয়োজনীয় সবকিছু করতে পারে এবং আরো সাধারণভাবে উপলব্ধ ExecStartPost=/bin/sh -c 'pgrep process_name > /var/run/process_name.pid' - Benjamin Peter


এই দেখায় অর্ডার BOTTOM থেকে শীর্ষ থেকে হয় http://lists.fedoraproject.org/pipermail/devel/2011-July/153897.html ExecStart এর আগে আপনার ExecStartPost চলমান


1
2018-06-04 12:21



আপনি পোস্ট পোস্ট নির্দেশ করে বিপরীত হয় যে পয়েন্ট অবস্থা আউটপুট, এটি আসলে সাময়িকভাবে বিপরীত নয়। ExecStartPre আগে ঘটবে ExecStart, এবং ExecStartPost পরে ঘটবে। - Charles Duffy