ওএস এক্স-এ বুট করার সময় স্ক্রিপ্ট চালানোর সহজতম উপায় কী?


12

আমি ওএস এক্স-এ বুট করার সময় একটি স্ক্রিপ্ট (বাশ / জেডএস / রুবি / ...) চালাতে চাই x এক্সএমএল / প্লাস্ট ফাইলের সাথে গোলযোগ না করেই এটি করার সর্বাধিক সহজ উপায় এবং সম্ভবত মেটা অ্যাপলস্ক্রিপ্ট তৈরি করার প্রয়োজন নেই ।

উত্তর:


7

ম্যাকোস এক্স ভিক্সি ক্রোন ব্যবহার করে, যার পুনরায় বুট করার সময় চালু করার জন্য বিশেষ মেটা ট্যাগ রয়েছে। ফাইল ফর্ম্যাটের জন্য ম্যান পৃষ্ঠাটি দেখুন ।

কিছুটা এইরকম:

@reboot /path/to/script.sh

আপনার crontab কাজ করবে। আমি নিশ্চিত নই যে এটি আরম্ভের চেয়ে ভাল সমাধান, আপনার কাছে সম্ভবত আরও বেশি মেটা সরঞ্জাম রয়েছে যা ক্রোনের চেয়ে লঞ্চে দেখায়।


এটি ভালবাসুন, আপনি আমাকে ভুল প্রমাণ করেছেন :-) যদিও cronডিফল্টরূপে লগিং করে ওএস এক্সে এত বড় কিছু নেই (ঠিক কিছুদিন আগে এখানে একটি বিষয় ছিল)।
ড্যানিয়েল বেক

এটি নিখুঁত।
জন বাচির

1
নোট করুন যে ক্রোন, এ, এবং আরও কিছু পরিমাণে ওএস এক্স-এ অবচয় করা হয়েছে I আমি বিভিন্ন ডক্সে এর সুস্পষ্ট বক্তব্য খুঁজে পাই না, এবং জানি না তারা কতটা আগ্রাসীভাবে অবমূল্যায়ন করেছে তবে লঞ্চটি সাধারণত পছন্দসই বলে মনে হয়। একটি পরিচিতির জন্য লঞ্চ করা ডকুমেন্টেশন দেখুন ।
নরম্যান গ্রে

plist আমার পক্ষে কাজ করবে না - এটি একটি কবজির মতো কাজ করে - আপনাকে ধন্যবাদ! :-D
বিজি ব্রুনো

ওএস এক্স
সত্যতার সাথে

6

আপনি যদি নিজের মতামত পরিবর্তন করেন:

<?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.superuser.245713</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/script.sh</string>
    </array>
    <key>UserName</key>
    <string>someuser</string>
</dict>
</plist>

যেমন স্টোর com.superuser.245713.plistমধ্যে /Library/LaunchAgents/এবং করতে root:wheelমালিক / গ্রুপ।


1
এটা পুরা তর্কসাপেক্ষে ভালো /Library/LaunchAgentsবদলে /System/Library/LaunchDaemonsযেহেতু /Systemওএস-নির্দিষ্ট উপাদান এবং এক অধীনে /Libraryতৃতীয় পক্ষের কাপড় জন্য আরো ব্যবহার করা হয়। এছাড়াও, LaunchDaemons"এমন আইটেম থাকতে হবে যা মূল হিসাবে চলবে, সাধারণত পটভূমি প্রক্রিয়া" যেখানে LaunchAgents"একজন ব্যবহারকারী হিসাবে বা ব্যবহারকারীল্যান্ডের প্রসঙ্গে" চালানো হবে। এই উদ্ধৃতিগুলির উত্স হ'ল লঞ্চে একটি দুর্দান্ত নিবন্ধ যা আমি লঞ্চ হওয়া প্রশ্নের জন্য পরামর্শ করি।
ডগ হ্যারিস

@ ডাওগ্রিস পরামর্শের জন্য ধন্যবাদ! আমাকে স্বীকার করতে হবে যে আমি কেবল এই অ্যাডহকটি টাইপ করছিলাম - আমি সাধারণত আমার সমাধানগুলি পরীক্ষা করার সময়, আমি এই জন্য আমার মেশিনটি পুনরায় চালু করতে রাজি ছিল না।
ড্যানিয়েল অঙ্গুলিনির্দেশ

এটি খুব সুন্দর, যদিও আমি ভিক্সি ক্রোন সমাধানটি আরও ভাল পছন্দ করি :)
জন বাচির

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


2

এছাড়াও রয়েছে লগইন হুক্স আপনি (root পরিচয়ে) চালানোর জন্য স্ক্রিপ্ট পছন্দ করেন যখন বদলে একটি ব্যবহারকারী লগ যখন মেশিন বুট করা হয়।

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