ক্রোন-স্টাইলের প্রবর্তিত কাজ লেখার জন্য (স্ক্র্যাচ থেকে) কেউ কি কোনও ভাল টিউটোরিয়াল প্রস্তাব করতে পারেন?


19

আমি একটি মোটামুটি সহজ কাজ পেয়েছি যা আমি প্রতি ঘন্টা চালাতে চাই। আমি এটি ব্যবহার করে করতে পারতাম cron, তবে আমি ভেবেছিলাম যে এটি সম্পর্কে জানার জন্য এটি ব্যবহার করব launchd, যেহেতু আমি এটি সম্পর্কে ভাল কিছু শুনেছি। man launchd.plistপৃষ্ঠাটি আমি রেফারেন্স হিসাবে পেয়েছি , তবে আমি উদাহরণের কাজ তৈরির আশেপাশে আরও কিছু ভিত্তিক কিছু খুঁজছি।


এটি স্ট্যাকওভারফ্লোতে সরানো উচিত।
ফিলিপ রেগান

5
@ ফিলিপ রেগান আমি এটি সম্পর্কে ভেবেছিলাম, তবে আমার কাছে আসলে তেমন কোনও প্রোগ্রামিং জড়িত নেই। আমি যদি কোন cronপ্রশ্ন জিজ্ঞাসা করতাম , তবে সুপারসার ডট কমটি কি সঠিক জায়গা হবে না? যেহেতু launchdঅ্যাপলের সংস্করণটি cron(এবং এছাড়াও daemontoolsএবং সম্ভবত অন্যান্য জিনিস) হওয়ায় আমি ভেবেছিলাম এটি আমার সেরা বিকল্প।
হ্যাঙ্ক গে

আপনি এটিকে একটি স্বয়ংক্রিয় স্ক্রিপ্টে রাখতে এবং আইসিএল থেকে চালাতে পারেন - যদি এটি আপনার মতো চলে
ব্যবহারকারী 151019

মজার এক বিড়ম্বনায়, তিন বছর পরে আমার নিজের একটি ক্রোন / চালু হওয়া প্রক্রিয়াটি নিজেকে প্রয়োগ করা দরকার এবং নিজেকে এই প্রশ্নটি আবার সম্পূর্ণ ভিন্ন আলোতে দেখছিলাম। প্রবর্তিত প্রশ্নগুলির সাথে স্ট্যাক ওভারফ্লো কী করতে হবে তা সম্পর্কে একটি মিশ্র মতামত রয়েছে তবে তারা সত্যিই এই প্রশ্নগুলি পছন্দ করে না। ভেবেছিলাম পুরো পরিস্থিতি মজাদার। +1
ফিলিপ রেগান

উত্তর:


14

launchdডেমোনস ( /Library/LaunchDaemonsবা /System/Library/LaunchDaemons) রুট হিসাবে চালায় এবং ব্যবহারকারীরা লগ ইন করেছেন কিনা তা নির্বিশেষে এগুলি চালাবে। কোনও ব্যবহারকারী সেই ব্যবহারকারী হিসাবে লগ ইন করলে লঞ্চ এজেন্টস ( /Library/LaunchAgents/বা ~/Library/LaunchAgents/) চালানো হয়। আপনি ডেমনগুলিতে স্ক্রিপ্ট চালাচ্ছেন এমন ব্যবহারকারীকে পরিবর্তন করতে সেতুড ব্যবহার করতে পারবেন না। /Systemডিরেক্টরি Mac OS X এর কাজের জন্য সংরক্ষিত হয়, যাতে আমি তোমার নির্বাণ সুপারিশ launchdপারেন মধ্যে plists /Libraryবা ~/Libraryফোল্ডারের যেমন জ্ঞান করে তোলে।

সুতরাং প্রথম পদক্ষেপটি নির্ধারণ করছে আপনি কোনও এজেন্ট বা ডেমন তৈরি করছেন কিনা।

দ্বিতীয় পদক্ষেপটি আপনার .plistফাইলটি তৈরি করা। আপনি জিইউআই ভিত্তিক প্রোগ্রামগুলি ব্যবহার করতে পারেন যেমন লিংগন এটিতে সহায়তা করতে বা কেবল আপনার প্রিয় পাঠ্য সম্পাদকটি ব্যবহার করতে পারেন:

.plistপ্রতি ঘন্টা একটি স্ক্রিপ্ট চালনার জন্য একটি নমুনা ( StartIntervalবা StartIntervalCalendarআমরা চাই কীগুলি - নির্দিষ্ট সময় এবং / বা তারিখের StartIntervalজন্য কোনও আইটেম প্রতি xসেকেন্ডে ঘটতে হয় StartIntervalCalendarস্টার্টক্যালেন্ডারআইন্টারওয়াল দিয়ে তৈরি উদাহরণ হিসাবে সুপার ইউজারে 126907 দেখুন):

<?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>local.IDENTIFIER_HERE.SOMETHING</string>
    <key>OnDemand</key>
    <true/>
    <key>RunAtLoad</key>
    <false/>
    <key>UserName</key>
    <string>USERNAME HERE</string>
    <key>Program</key>
    <string>/PATH/TO/SCRIPT</string>
    <key>ProgramArguments</key>
    <array>
        <string>Argument_1</string>
        <string>Argument_2</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>
</dict>
</plist>

.plistআপনার স্ক্রিপ্ট এবং প্রয়োজনীয় হিসাবে যে কোনও আর্গুমেন্টে নির্দেশ করার জন্য প্রয়োজনীয় হিসাবে সংশোধন করুন (আর্গুমেন্ট পৃথক লাইনে রয়েছে) এবং লেবেল মান হিসাবে একই নামের সাথে ফাইলটি সংরক্ষণ করুন .plistতবে শেষ পর্যন্ত। (উদাহরণস্বরূপ, local.my-mac.flickrstatsহিসাবে সংরক্ষণ করা হবে local.my-mac.flickrstats.plist)। আপনি যদি ইতিমধ্যে না থাকেন তবে ডেমোন তৈরি .plistকরার /Library/LaunchDaemonsসময় সেই ফাইলটি সরান (সমস্ত সময় চালায়) বা ~/Library/LaunchAgents(কেবলমাত্র আপনি লগইন করেছেন) বা /Library/LaunchAgents(যে কোনও ব্যবহারকারী লগ ইন করেছেন)।

কাজটি শুরু করতে আপনি launchctlফাইলটি লোড করার জন্য প্রয়োজনীয় হিসাবে চালাতে চান । আইটেমগুলির জন্য /Library, আপনার sudo ব্যবহার করা উচিত: উদাহরণস্বরূপ,sudo launchctl load -w /PATH/TO/PLIST

রেফারেন্সের জন্য সুপার ব্যবহারকারী সম্পর্কে নিম্নলিখিত প্রশ্নগুলিও দেখুন: কমান্ডটি রুট হিসাবে চালু করা , একটি সিস্টেম প্রশস্ত ডিমন লোড করুন এবং আমি কীভাবে প্রতিদিন স্ক্রিপ্ট পেতে পারি?


4

আমি জানি এটি একটি ভাল টিউটোরিয়াল নয়, তবে আপনার অ্যাপল থেকে ডেমোনস এবং সার্ভিসেস প্রোগ্রামিং গাইডের উপর নজর থাকতে পারে , যার সময় নির্ধারিত কাজের জন্য একটি বিভাগ রয়েছে।

আমি জানি এটি একটি সম্পূর্ণ টিউটোরিয়াল নয়, তবে এটির সাথে আপনি এর মূল বিষয়গুলি বুঝতে পারবেন launchd

এটি কোনও crondকাজের উদাহরণও দেয় :

<?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.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

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

@ হ্যাঙ্ক গে: আপনার মন্তব্যের জন্য ধন্যবাদ। আমি আমার উত্তরটিও সম্পাদনা করেছি।
অধ্যক্ষ

4

এটি আমাকে অনেক সাহায্য করেছে: http://launchd.info

এটা তোলে কনফিগারেশন, প্রশাসন ও টার্মিনাল বা launchd গুই ব্যবহার সমস্যাসমাধানের জুড়ে LaunchControl । উদাহরণগুলি পাশাপাশি সরবরাহ করা হয়।


2

আমি জানি আপনি টিউটোরিয়ালটি সন্ধান করছিলেন, তবে অফ-সুযোগে কেউ এখানে এসেছিলেন যাতে তারা লঞ্চ করা এন্ট্রিগুলি সম্পাদনা / সম্পাদনা করতে সহায়তা করতে কোনও সরঞ্জাম সন্ধানের অংশ হিসাবে আসে, আমি এটি আগে ব্যবহার করেছি: লিঙ্গন ( সোর্সফোর্জ )

এটি আর সক্রিয়ভাবে বিকশিত হচ্ছে না তবে সেখানে কী কাজ করে (এবং স্পষ্টত উত্স ইত্যাদি অন্তর্ভুক্ত রয়েছে)। আমি এটিকে অ্যামাজনের ক্লাউড ইত্যাদির ব্যাকআপ নির্ধারণের জন্য স্নো লেপার্ডে ব্যবহার করেছি etc.


Lingon App স্টোর বা দোকান মধ্যে এখন হয় তাই এখনও শুধু মুক্ত দেখতে না সক্রিয় < peterborgapps.com/lingon >
user151019

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