আমার একটি পুরাতন স্কুল ডেমন রয়েছে যা আমি সিস্টেমড ব্যবহার করে নিয়ন্ত্রণ করতে চাই। যখন এর কনফিগারেশন ফাইলটি পরিবর্তন হয়, এটিকে হত্যা করে পুনরায় আরম্ভ করা দরকার। অন্য কথায়, কনফিগার ফাইলটি সম্পাদনা করার পরে, systemctl reload MYSERVICE
প্রক্রিয়াটি মেরে ফেলা উচিত rest
চেষ্টা 1: ডিফল্ট চেষ্টা করুন। এটি সিস্টেমডকে জানায় যে কীভাবে ডেমন শুরু করা যায়, তবে কীভাবে এটি পুনরায় লোড করা যায় না।
[Service]
ExecStart=/usr/bin/MYSERVICE
Type=simple
ফলস্বরূপ, start
এবং restart
কাজ, কিন্তু reload
এই ত্রুটি দেয়:
# systemctl reload MYSERVICE
Failed to reload MYSERVICE.service: Job type reload is not applicable for unit MYSERVICE.service.
চেষ্টা 2: প্রক্রিয়াটি কীভাবে হত্যা করা যায় তা বলুন। এটি প্রক্রিয়াটিকে মেরে ফেলেছে তবে সিস্টেমড আমার জন্য এটি পুনরায় আরম্ভ করবেন না।
[Service]
ExecStart=/usr/bin/MYSERVICE
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
... অনুসরণ করেছে ...
# systemctl daemon-reload
# systemctl reload MYSERVICE
... প্রক্রিয়াটিকে মেরে ফেলে তবে এটি স্বয়ংক্রিয়ভাবে পুনরায় চালু হয় না।
চেষ্টা 3: প্রক্রিয়াটি পুনরায় আরম্ভ করতে এক্সিকিউরেলোড ব্যবহার করুন। এটি কয়েকটি কারণে ব্যর্থ:
ExecReload=/bin/kill -HUP $MAINPID ; /usr/bin/MYSERVICE
... আমি পেয়েছি ত্রুটি বার্তা ...:
# systemctl daemon-reload
# systemctl reload MYSERVICE
Job for MYSERVICE.service failed because the control process exited with error code. See "systemctl status MYSERVICE.service" and "journalctl -xe" for details.
আমি প্রত্যাশা করব যে সেখানে একটি পুনরায়লোড টাইপ = কিল_আর_স্টার্ট বা অন্য কিছু হবে তবে এরকম ভাগ্য হবে না।
পুনরায় লোডের সময় ডেমোনকে মেরে ফেলা এবং পুনরায় চালু করতে সিস্টেমডকে কীভাবে বলা যায়?