আমি কীভাবে একটি গ্রুপযুক্ত পরিষেবাদি পুনরায় লোড করব?


12

আমি কোনও ইভেন্টের পরে পরিষেবাগুলির একটি গ্রুপ পুনরায় লোড করতে (পুনঃসূচনা করতে চাই না!) চাই।

উদাহরণস্বরূপ, আমি যদি আমার এসএসএল শংসাপত্রগুলি আপডেট করি তবে আমি সেগুলি পুনরায় লোড করা ( nginxএবং postfixমনে রাখবেন) ব্যবহার করে এমন প্রতিটি পরিষেবা চাই । কোনও প্রদত্ত সার্ভারে কোন পরিষেবাগুলি SSL শংসাপত্র ব্যবহার করে তা আমি মনে করতে চাই না। এগুলি কনফিগার করা হওয়ার পরে তাদের গোষ্ঠীভুক্ত করা যথেষ্ট হবে।

অন্যদিকে, আমি .serviceপ্যাকেজগুলির সাথে সরবরাহিত ফাইলগুলি পরিবর্তন করা এড়াতে চাই , কারণ আপডেটের সময় এটির জন্য ম্যানুয়াল হস্তক্ষেপের প্রয়োজন হবে।

আমি কীভাবে এটি সম্পাদন করব?

অনুরোধের ভিত্তিতে পরিষেবাগুলির একটি গ্রুপ বন্ধ করার বিকল্প রয়েছে , তবে এটি তাদের জন্য দ্বিতীয় বা দু'বার অ্যাক্সেসযোগ্য বা আরও খারাপ হতে পারে - তারা স্থির না হওয়া পর্যন্ত নিচে থাকতে পারে। আমি তা পারছি না


আপনি কীভাবে শংসাপত্রগুলি মোতায়েন করবেন তা আমি নিশ্চিত নই, তবে বেশিরভাগ /opt/letsencrypt/letsencrypt-auto renew --pre-hook "service nginx stop; service postfix stop; service squid stop" --post-hook "service nginx start; service postfix start; service squid start" স্বয়ংচালিত পুনর্নবীকরণগুলির জন্য এখানে প্রাক-হুক এবং পোস্ট- হুকও রয়েছে: সারটমনজারের পোস্টসভে এবং প্রিস্টাভ কমান্ড রয়েছে
জ্যাকব ইভান্স

@ জ্যাকোভেনস আমি এটিই ব্যবহার করি! এর আগে সার্টিবোটের জন্য একটি কনফিগার ফাইল পার্সারে সমস্যা ছিল: এটি সেমিকোলনের অনুমতি দেয়নি। সুতরাং আপনাকে একটি কমান্ড লাইন আর্গুমেন্ট ব্যবহার করতে হবে, বা একসাথে এটি করতে হবে। এখনই এই সব অযথা।
সান্মই

যদি আপনি আপনার .serviceফাইল সম্পাদনাগুলি ওভাররাইড হিসাবে করেন তবে আপনি আপডেটিং সমস্যা এড়াতে পারবেন। ইনস্টল করা ফাইলটি পরিবর্তনের পরিবর্তে sudo systemctl edit foo.serviceআপনার পরিবর্তনগুলি সংরক্ষণ করবে । /etc/systemd/system/foo.service.d/override.conffoo.service
কুইসোটিক

উত্তর:


21

/etc/systemd/system/ssl-reload.targetনিম্নলিখিত বিষয়বস্তু দিয়ে তৈরি করুন ।

[Unit]
Description=Services which need reloaded with SSL certs are updated.
PropagatesReloadTo=nginx postfix

তারপরে অন্য ফাইলটি তৈরি করুন: /etc/systemd/system/ssl-reload.path

[Unit]
Description=Restart services which use SSL when the cert directory changes

[Path]
PathChanged=/path/to/your/ssl/certs/dir

[Install]
WantedBy=multi-user.target

তারপর:

systemctl enable ssl-reload.path
systemctl start ssl-reload.path

এই বলে যে, আপনার এসএসএল ডিরেক্টরিতে কিছু পরিবর্তন করার পরে, কাঙ্ক্ষিত পরিষেবাদিগুলি স্বয়ংক্রিয়ভাবে পুনরায় লোড করা উচিত।

আপনি যদি স্বয়ংক্রিয় আচরণ না চান তবে .pathফাইলটি ব্যবহার করবেন না এবং systemctl reload ssl-reload.targetএসএসএল ফাইলগুলি পরিবর্তন করার পরে ম্যানুয়ালি ইস্যু করুন ।

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