নির্দিষ্ট সময়ে একটি সিস্টেমড.সার্ভিস চালু / বন্ধ করুন


14

আমি নির্দিষ্ট সময়ে একটি systemd.service শুরু এবং বন্ধ করতে চাই। আমি সম্ভবত কাজ শুরু করার জন্য একটি .timer ইউনিট ব্যবহার করব, তবে একটি নির্দিষ্ট সময়কালের পরে, বা একটি নির্দিষ্ট সময়ে কাজ বন্ধ করার পথে একটি বিল্ট তৈরি করা আছে , বা আমাকে দ্বিতীয় .টিমার ইউনিট তৈরি করতে হবে যা কার্য সম্পাদন করে stop?

ধন্যবাদ

উত্তর:


6

একটি টাইমার সহ একটি পরিষেবা এ থামাতে, আপনি টাইপের একটি পরিষেবা বি তৈরি করতে পারেন oneshotযা এটির সাথে বিরোধে জড়িয়ে থাকবে, তারপরে পরিষেবা বি শুরু করতে টাইমার ব্যবহার করুন B.

যদি কোনও ইউনিটে অন্য ইউনিটে একটি দ্বন্দ্ব = সেটিং থাকে তবে পূর্ববর্তীটি শুরু করলে পরবর্তীকালে এটি বন্ধ হয়ে যায় এবং তদ্বিপরীত হয়। ( উত্স )

একটি সেবা:

[Unit]
Conflicts=B.service
...

B.service:

[Unit]
Description=B service description

[Service]
Type=oneshot
ExecStart=/bin/echo ''

B.timer:

[Timer]
AccuracySec=1
OnActiveSec=10

[Install]
WantedBy=timers.target

নিম্নলিখিত 10 সেকেন্ড পরে পরিষেবা A বন্ধ করবে।

systemctl start A.service
systemctl start B.timer

2

আপনি কয়েকটি ক্রোন জব ব্যবহার করতে পারেন:

 # ┌───────────── মিনিট (0 - 59) 
 # │ ┌────────────── ঘন্টা (0 - 23)
 # │ │ month মাসের দিন (1 - 31)
 # │ │ │ ┌──────────────── মাস (1 - 12)
 # │ │ │ │ week সপ্তাহের দিন (0 - 6)
 # │ │ │ │ │
 # │ │ │ │ │
   * * * * * systemctl শুরু $ SERVICE.service
   * * * * * systemctl স্টপ $ SERVICE.service

ক্রোন সম্পর্কিত আরও তথ্য: https://en.wikedia.org/wiki/Cron , https://wiki.archlinux.org/index.php/Cron


8
ক্রোন জব কীভাবে সিস্টেমড .timerইউনিটগুলির উন্নতি হয় যা ওপি ইতিমধ্যে জানে?
পাভেল rdিমেরদা

আমি, হ্যাঁ, তবে আমার প্রশ্নটি হ'ল সিস্টেমডের সাথে এটি কীভাবে সঠিকভাবে করা যায়? আমি ধরে নিই কোন নির্দিষ্ট সময়ে বা একটি নির্দিষ্ট সময়কালের পরে কাজ বন্ধ করার কোনও মানক উপায় থাকতে হবে।
জেমি কিটসন

@ জ্যামিকিটসন সত্য বলতে আমি আসলে ক্রোন এবং সিস্টেমড টাইমার ছাড়িয়ে এমন বৈশিষ্ট্য থাকা দরকার বলে মনে করি না । বেশিরভাগ সিস্টেমেড ইনস্টলেশনটি কখনও এ জাতীয় বৈশিষ্ট্যগুলি ব্যবহার করবে না এবং systemctlক্রোন, সিস্টেমড টাইমার এবং আপনার যা পছন্দ তা ব্যবহার করে চালানোর ক্ষেত্রে কোনও ভুল নেই । আমার মতে এই উত্তরটি অন্য যে কোনও উত্তরের মতো বৈধ।
পাভেল Šimerda

আপনি কীভাবে উদাহরণস্বরূপ www-data- কে systemctl শুরু এবং থামাতে অনুমতি দিন?
alvaropgl

@alvaropgl আপনার মন্তব্যটির ব্যবহারকারীর (www-ডেটা) সাথে কোন সম্পর্ক নেই এবং তাদের কী সীমাবদ্ধ অ্যাক্সেস থাকতে পারে / চালাতে হবে না (প্রযোজ্য সিস্টেমগুলি), যা বিষয়। একটি নতুন বিষয় শুরু করুন। ইঙ্গিত: আপনি সম্ভবত www- ডেটা ব্যবহারকারীর উপর আরও বেশি দায়িত্ব + সুযোগ সক্ষম করার আপনার বর্তমান পদ্ধতির চেয়ে আপনার প্রয়োজনীয় জিনিসগুলি করার জন্য একটি API তৈরির দিকে নজর দিতে চান।
স্কট প্রিভ 11

2

.serviceফাইলটিতে নির্দিষ্ট রানটাইম কনফিগার হওয়ার পরে কোনও পরিষেবা বন্ধ করার প্রকৃতপক্ষে অন্য উপায় আছে ।

RuntimeMaxSec=...

আপনি এই বিষয়টি পছন্দ করতে পারেন না যে পরিষেবাটি ব্যর্থ বলে মনে করা হচ্ছে তবে এটি দীর্ঘমেয়াদী পরিষেবাটি হত্যার কম-বেশি যৌক্তিক ফলাফল।

আরও ভাল উত্তর পেতে আপনি এই জাতীয় অস্বাভাবিক বৈশিষ্ট্যটি ব্যবহার করার জন্য আপনার যুক্তিটি ব্যাখ্যা করতে চাইতে পারেন। পরিষেবাগুলি সাধারণত স্থায়ী সময়ের জন্য নয়, চিরকালের জন্য বা স্পষ্টভাবে বন্ধ হওয়া অবধি চলমান বোঝানো হয়।


1
হ্যাঁ, আমরা মেলিং তালিকায় এটি এবং এর সীমাবদ্ধতাগুলি নিয়ে আলোচনা করেছি: list.freedesktop.org/archives/systemd-devel/2016- এপ্রিল/…
জ্যামি কিটসন

1
অস্বাভাবিক না. কেবলমাত্র রাতের সময়, যখন সার্ভারটি সর্বনিম্ন ট্র্যাফিক পায় তখন কোনও সংস্থান-চাহিদা পরিষেবাটি চালানোর বিষয়ে কী বলা যায়? এছাড়াও, যেখানে আমি কাজ করি, আমাদের কাছে একটি সতর্কতা ডেমন রয়েছে যা সার্ভারগুলিতে কোনও ব্যতিক্রম থাকে যখন তাদের ফোনের মাধ্যমে সহায়তা দলকে জাগ্রত করার জন্য নকশাকৃত। আমরা সত্যিই জাগ্রত থাকাকালীন আমরা সেই বিরক্তিকর জিনিসটি চলতে চাই না কারণ পিক ব্যবহারের সময় সেই সার্ভারগুলির বাম এবং ডান সমস্যা রয়েছে।
জেমস এম লে 13
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.