আমি কীভাবে এতবার প্রায়শই চালানোর জন্য একটি কার্য সেট করব?


84

আমার কাছে কীভাবে প্রতি স্ক্রিপ্ট চলবে, 30 মিনিট বলুন? আমি ধরে নিই যে বিভিন্ন ওএসের বিভিন্ন উপায় রয়েছে। আমি ওএস এক্স ব্যবহার করছি

উত্তর:


136

শুধু চালু হয়েছে । এটি একটি খুব শক্তিশালী লঞ্চার সিস্টেম এবং এরই মধ্যে এটি ম্যাক ওএস এক্সের জন্য প্রমিত প্রবর্তক সিস্টেম (বর্তমান ওএস এক্স সংস্করণটি এটি ছাড়া বুটও করবে না)। যারা সাথে পরিচিত না হন জন্য launchd(অথবা সাধারণভাবে OS X এর সঙ্গে), এটা মধ্যে একটি দোআঁশলা মত হল init, cron, at, SysVinit ( init.d), inetd, upstartএবং systemd। এই সমস্ত প্রকল্পের ধার ধারনা, তবুও এমন জিনিস সরবরাহ করে যা আপনি অন্য কোথাও খুঁজে পাবেন না।

প্রতিটি পরিষেবা / টাস্ক একটি ফাইল। ফাইলটির অবস্থান প্রশ্নগুলির উপর নির্ভর করে: "এই পরিষেবাটি কখন চলবে?" এবং "পরিষেবাটির কী সুবিধাগুলি প্রয়োজন?"

সিস্টেমের কাজগুলিতে যায়

/Library/LaunchDaemons/

যদি সেগুলি চালানো হয় তবে কোনও ব্যবহারকারী সিস্টেমে লগইন হয়েছে কিনা তা বিবেচ্য নয়। এগুলি "রুট" সুবিধার্থে শুরু করা হবে।

যদি কোনও ব্যবহারকারী লগ ইন থাকে তবেই তারা চালাতে পারে, তারা সেখানে যায়

/Library/LaunchAgents/

এবং স্রেফ লগ ইন করা ব্যবহারকারীদের সুবিধাগুলি দিয়ে কার্যকর করা হবে।

তারা শুধুমাত্র চালানো হইবে যদি আপনি লগ ইন রয়েছেন, তারা যেতে

~/Library/LaunchAgents/

যেখানে H হল আপনার হোম ডিরেক্টরি। এই টাস্কটি আপনার সুবিধাগুলি নিয়ে চলবে, ঠিক যেমন আপনি সেগুলি নিজেরাই কমান্ড লাইনের মাধ্যমে বা ফাইন্ডারে কোনও ফাইলকে ডাবল ক্লিক করে শুরু করেছিলেন।

মনে রাখবেন যে সেখানে উপস্থিত রয়েছে /System/Library/LaunchDaemonsএবং /System/Library/LaunchAgentsযথারীতি, সমস্ত কিছু /Systemওএস এক্স দ্বারা পরিচালিত হয় You আপনি কোনও ফাইল সেখানে রাখবেন না, আপনি সেখানে যা করছেন তা যদি না জানেন তবে আপনি সেখানে কোনও ফাইল পরিবর্তন করতে পারবেন না। সিস্টেম ফোল্ডারে চারপাশে জগাখিচুড়ি করা আপনার সিস্টেমকে অকেজো করে তুলতে পারে (এটিকে এমন অবস্থায় প্রবেশ করুন যেখানে এটি আবার বুট আপ করতে অস্বীকার করবে)। এগুলি সেই ডিরেক্টরিগুলি যেখানে অ্যাপল launchdআপনার সিস্টেমে বুট চলাকালীন কাজগুলি চালিত করে, প্রয়োজনীয়ভাবে স্বয়ংক্রিয়ভাবে পরিষেবা শুরু করে, সিস্টেম রক্ষণাবেক্ষণের কাজগুলি সম্পাদন করে এবং এগুলি করে।

প্রতিটি কাজই launchdপ্লাস্ট ফর্ম্যাটে একটি ফাইল থাকে। এটির বিপরীত ডোমেন নাম স্বীকৃতি থাকা উচিত। যেমন আপনি নিজের কাজের নাম রাখতে পারেন

com.example.my-fancy-task.plist

এই plist বিভিন্ন বিকল্প এবং সেটিংস থাকতে পারে। প্রতি হাতে একটি করে লেখা সাব-থিমাল, আপনি আপনার কাজগুলি তৈরি করতে ফ্রি টুল লিংগন পেতে চাইতে পারেন । এই সরঞ্জামটি বিনামূল্যে ব্যবহৃত হত, এখন এটি অ্যাপ স্টোরের জন্য 5 ডলার এবং নন অ্যাপ স্টোর সংস্করণ হিসাবে 10 ডলার (নন অ্যাপ স্টোর সংস্করণটি অনেক বেশি শক্তিশালী এবং যদি আপনি ইতিমধ্যে এর জন্য অর্থ প্রদানের পরিকল্পনা করেন তবে গুরুত্ব সহকারে, নন অ্যাপ স্টোরটি পান সংস্করণ)। যদি কেউ এমন তুলনামূলক সরঞ্জামটি জানেন যা ফ্রিওয়্যার বা ওপেন সোর্স হয়, তবে আমাকে মন্তব্যে একটি লাইন ফেলে দিন এবং আমি বরং এটির পরামর্শ দেব (বাণিজ্যিক সফ্টওয়্যারটির জন্য এখানে বিজ্ঞাপন দিতে চাই না)।

যেমন একটি উদাহরণ, এটি দেখতে পারে

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.my-fancy-task</string>
    <key>OnDemand</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>/usr/local/bin/my-script.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>1800</integer>
</dict>
</plist>

এই এজেন্টটি প্রতি 1800 সেকেন্ডে (প্রতি 30 মিনিটে) শেল স্ক্রিপ্ট /usr/local/bin/my-script.sh চালাবে। আপনার নির্দিষ্ট তারিখ / সময়গুলিতেও টাস্ক চালানো যেতে পারে (মূলত লঞ্চটি ক্রোন যা করতে পারে তা করতে পারে) বা এমনকি আপনি "অনডিম্যান্ড" অক্ষম করতে পারেন যাতে প্রক্রিয়া স্থায়ীভাবে চলতে থাকবে (যদি এটি প্রস্থান করে বা ক্র্যাশ করে, তবে অবিলম্বে তা পুনরায় চালু হবে) । এমনকি কোনও প্রক্রিয়া কতগুলি সংস্থান ব্যবহার করতে পারে তা সীমাবদ্ধও করতে পারেন (যেমন আগে বলা হয়েছে, লিঙ্গন একটি সুন্দর ইউআই ইন্টারফেসে এই সমস্ত সেটিংস দেখায়)।

আপডেট: যদিও OnDemandএখনও সমর্থিত, এটি অবচয় করা হয়েছে। নতুন সেটিংটির নামকরণ করা হয়েছে KeepAlive, যা আরও বেশি অর্থবোধ করে। এটা একটা বুলিয়ান মান, যে ক্ষেত্রে এটা সঠিক বিপরীত হতে পারে OnDemand(এটি সেটিং falseআচরণ করবে যেন OnDemandহয় trueএবং অন্যান্য উপায় বৃত্তাকার)। দুর্দান্ত নতুন বৈশিষ্ট্যটি হ'ল এটিতে বুলিয়ান পরিবর্তে অভিধানের মান থাকতে পারে। যদি এর অভিধানের মান থাকে তবে আপনার কাছে কয়েকটি অতিরিক্ত বিকল্প রয়েছে যা আপনাকে আরও সূক্ষ্ম শস্য নিয়ন্ত্রণ দেয় যে পরিস্থিতিতে টাস্কটি টিকে থাকবে। উদাহরণস্বরূপ, এটিকে কেবলমাত্র শূন্যের প্রস্থান কোড সহ প্রোগ্রামটি সমাপ্ত হওয়া অবধি ততক্ষণ জীবিত রাখা হবে, কেবলমাত্র ডিস্কে কোনও নির্দিষ্ট ফাইল / ডিরেক্টরি উপস্থিত থাকা অবধি কেবলমাত্র অন্য কোনও টাস্কটি যদি জীবিত থাকে তবেই বা কেবলমাত্র নেটওয়ার্কটি চালু থাকে।

এছাড়াও আপনি কমান্ড লাইনের মাধ্যমে ম্যানুয়ালি কার্যগুলি সক্ষম / অক্ষম করতে পারবেন:

launchctl <command> <parameter>

কমান্ডটি লোড বা আনলোড হতে পারে, একটি প্লিস্ট লোড করতে বা আবার আনলোড করতে পারে, এই ক্ষেত্রে পরামিতি ফাইলটির পথ। বা কমান্ড শুরুর বা থামার জন্য, যেমন কোনও কাজ শুরু বা থামাতে পারে, সেই ক্ষেত্রে পরামিতি হ'ল লেবেল (com.example.my-অভিনব-টাস্ক)। অন্যান্য কমান্ড এবং বিকল্পগুলিও উপস্থিত রয়েছে।

প্লাস্ট ফর্ম্যাট এবং launchctlকমান্ড লাইন সরঞ্জামের অ্যাপলের ডকুমেন্টেশন দেখুন (নোট করুন যে আপনি ওএস এক্স সংস্করণটি শীর্ষে নির্বাচন করতে পারেন, যেহেতু বিন্যাস / বিকল্পগুলি বিভিন্ন ওএস এক্স রিলিজের মধ্যে পরিবর্তিত হয়)


আমি লগ ইন না থাকা সত্ত্বেও যদি আমি ব্যবহারকারী হিসাবে কিছু চালাতে চাই? এটি কি সম্ভব, বা আমাকে প্রশাসককে / লাইব্রেরি / লঞ্চডেমনে কিছু রাখতে বলুন?
মার্ক বাকের

@ মার্ক: হ্যাঁ, আপনার প্রশাসককে এটি করতে হবে এবং ইউজারনেম এবং গ্রুপনেম কীগুলি .plist ফাইলটিতে যথাযথভাবে সেট করতে হবে।
স্টিভ ফলি

আরও মনে রাখবেন যে চিতাবাঘ এবং এর বাইরেও অনডিম্যান্ডকে কিপএলাইভ কী-এর পক্ষে অবজ্ঞা করা হয়েছে। আরও তথ্যের জন্য manunchd.plist।
স্টিভ ফলি

4
LaunchControl soma-zone.com/LaunchControl খুব দরকারী, এটির সীমাহীন ট্রায়াল রয়েছে, যতদূর আমি বলতে পারি লাইসেন্স সংস্করণ বনাম কোনও সীমাবদ্ধতা নেই।
বেনঅফসিনিয়িটি

4
@ ম্যাসিকরেক StartCalendarIntervalদুটি অভিধানের একটি অ্যারে দিয়ে, কী Minuteএবং একবারের মান এবং উভয়ই একবার 00এবং 30অনুরোধটি ঠিক আপনার অনুরোধ অনুসারে করবে। ভবিষ্যতে প্রশ্ন হিসাবে প্রশ্ন জিজ্ঞাসা করুন, মন্তব্য হিসাবে নয়, তারপরে আমি আপনাকে চূড়ান্ত অভিধানটিও দেখাতে পারি (আমি কোনও মন্তব্যে এটি করতে পারি না) can't এই সাইটটি প্রশ্ন জিজ্ঞাসা সম্পর্কে সব। আপনি যদি প্রশ্নটিতে কাউকে ইঙ্গিত করতে চান তবে প্রশ্নের লিঙ্কটি মন্তব্য হিসাবে পোস্ট করুন তবে প্রশ্নটি নয়।
মক্কি

47

আপনি খুব সুবিধাজনক প্লাস্ট জেনারেটর ব্যবহার করতে পারেন: http://launched.zerowidth.com/ (কিছু কেনার দরকার নেই) ...

এটি আপনাকে ইতিমধ্যে প্রস্তাবিত প্রবর্তনের সাথে একটি নতুন নির্ধারিত কাজের নিবন্ধীকরণের জন্য শেল ওয়ান-লাইনার দেবে


11

ম্যাকোএসএক্স-এ আপনার কমপক্ষে নিম্নলিখিত বিকল্পগুলি রয়েছে:

  • "রান স্ক্রিপ্ট" ক্রিয়াকলাপের সাথে আইক্যাল অ্যালার্ম পুনরাবৃত্তি করা হচ্ছে
  • চালু
  • ক্রোন ( লিঙ্ক 1 , লিঙ্ক 2 )

ব্যক্তিগত অভিজ্ঞতা থেকে ক্রোন সবচেয়ে নির্ভরযোগ্য। আমি যখন পরীক্ষা করেছিলাম, লঞ্চে বেশ কয়েকটি বাগ এবং কিরক ছিল। আইসিএল অ্যালার্মগুলি কেবল তখনই লগ ইন করা হয় যখন চালানো হয় (তবে এটি আপনার পছন্দ মতো কিছু হতে পারে)।


8

মেকি যেমন উল্লেখ করেছেন, চালু হ'ল এটির সাথে যাওয়ার উপায়। লিংগন নামে একটি লঞ্চের জন্য জিইউআই ইন্টারফেস রয়েছে যা আপনি যাচাই করতে চাইতে পারেন, লঞ্চ করা ফাইলগুলি হাতে সম্পাদনার বিপরীতে:

লিঙ্গন হ'ল ম্যাক ওএস এক্স লিপার্ড 10.5 এর জন্য একটি সম্পাদনা লঞ্চ কনফিগারেশন ফাইল তৈরির জন্য একটি গ্রাফিকাল ইউজার ইন্টারফেস।

[স্নিপ ...]

একটি কনফিগারেশন ফাইল সম্পাদনা করা এই সংস্করণে আগের চেয়ে সহজ এবং এর দুটি পৃথক মোড রয়েছে। বেসিক মোড যা খুব সাধারণ সেটিংস খুব সহজ ইন্টারফেস এবং বিশেষজ্ঞ মোডে সহজেই উপলভ্য যেখানে আপনি সমস্ত সেটিংস সরাসরি পাঠ্যে যুক্ত করতে পারেন বা মেনুর মাধ্যমে সেগুলি সন্নিবেশ করতে পারেন।


সত্যিই, এটি একটি দুর্দান্ত, সহজেই ব্যবহারযোগ্য ইন্টারফেস যা এটি এটি হয়ে যায় এবং আপনাকে এগিয়ে যাওয়ার অনুমতি দেয়। আপনি যদি সময়মতো সংক্ষিপ্ত হন তবে এটিই যাওয়ার উপায়।
জোশুয়া পিন্টার

4

ম্যাক ওএসের একটি অটোমেটার সরঞ্জাম রয়েছে যা উইন্ডোতে টাস্ক শিডিয়ুলারের মতো। এবং অটোম্যাটর ব্যবহার করে আপনি প্রতিদিনের ভিত্তিতে কাজগুলি নির্ধারণ করতে পারেন এবং নির্দিষ্ট সময়ে প্রতিদিন স্ক্রিপ্টগুলি চালনার জন্য পুনরাবৃত্ত ক্যালেন্ডার ইভেন্টের সাথে কার্যটি লিঙ্ক করতে পারেন। ম্যাক ওএসে প্রতিদিন ভিত্তিতে স্ক্রিপ্টগুলি চালনার জন্য লিঙ্কটি উল্লেখ করুন


কমপক্ষে ম্যাকোস ক্যাটালিনা (10.15.x) এ, আমি অটোমেটরের মাধ্যমে ক্যালেন্ডারে কাজের সময় নির্ধারণের কোনও উপায় খুঁজে পেলাম না। লিঙ্গনের সাথে আমার আরও ভাল ফলাফল হয়েছে (অন্যান্য উত্তরগুলি দেখুন যেটি চালু করার জন্য একটি ইন্টারফেস হিসাবে উল্লেখ করা হয়েছে)।
Calvinf

2

অ্যাপল স্ক্রিপ্টগুলির জন্য, আমি একটি বিশেষ আইক্যাল ক্যালেন্ডার সেট আপ করেছি এবং এগুলি পর্যায়ক্রমে চালানোর জন্য অ্যালার্ম ব্যবহার করি। কমান্ড লাইন সরঞ্জামগুলির জন্য, আমি লঞ্চ ব্যবহার করি।


1

এফওয়াইআই: আমি যখন এটি অনুভব করি তবে ক্রোন ওএস এক্স-এ অতীতের একটি বিষয় It এটি প্যান্থারের উপর নজরদারি ছিল। টাইগার থেকে এটি চালু হয়েছে। সুতরাং আপনি যদি চিতাবাঘ ক্রোন চালাচ্ছেন তবে এটি কোনও বিকল্প নয়।


1

কাজের সময় নির্ধারণের জন্য আপনি ক্রোন ব্যবহার করতে পারেন।

crontab -e

একটি কাজ নিম্নলিখিত বিন্যাসে নির্দিষ্ট করা হয়েছে।

* * * * *  command to execute
│ │ │ │ │
│ │ │ │ └─── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
│ │ │ └──────── month (1 - 12)
│ │ └───────────── day of month (1 - 31)
│ └────────────────── hour (0 - 23)
└─────────────────────── min (0 - 59)

উদাহরণ:

0 12 * * *  cd ~/backupfolder && ./backup.sh

একবার আপনি আপনার ক্রোন কাজগুলি ইনস্টল করার পরে, আপনার কার্যগুলির তালিকা করতে আপনি ক্রন্টব-এল ব্যবহার করতে পারেন।

crontab -l

ক্রোন শিডিউল এক্সপ্রেশন সম্পর্কে আপনি যদি আরও জানতে চান তবে অ্যাক্সেস করতে পারেন

https: // c چی

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