আমি কীভাবে "আরসি.লোকাল" চালু করতে পারি?


75

আমার একটি স্ক্রিপ্ট রয়েছে যা আমার সিস্টেম শুরু হওয়ার পরে চালাতে চাই। আমি এটি "rc.local" এ রেখেছি, তবে এটি কার্যকর হয় না। আমি কীভাবে এটি স্টার্টআপ চলতে সক্ষম করতে পারি?


1
Xsetwacom কমান্ডটি কোথায়? /etc/rc.local প্রারম্ভকালে খুব সাধারণ PATH দিয়ে সম্পাদন করা হয়। এটি সম্ভবত আপনি টার্মিনালে লগ ইন করেছেন AT টার্মিনালে, টাইপ করুন: টাইপ করুন -p xsetwacom তারপরে "xsetwacom" কমান্ডটি /etc/rc.local এ প্রতিস্থাপন করুন "টাইপ -p" দ্বারা ফিরে আসার সাথে পুরো পথ দিয়ে। এক্সসেটওয়াকম আপনার জন্য কাজ করার আগে আপনাকে কি কোনও ম্যানুয়াল ইনিশিয়ালাইজেশন করতে হবে?
ওয়ালটিনেটর

3
স্টার্টআপ ম্যানেজার হিসাবে systemctl status rc-local.service
সিস্টেমড

ওয়াল্টিনেটর মন্তব্য আমার সমস্যা ছিল। ন্যূনতম পাথের কারণে, আমি যে স্ক্রিপ্টগুলি চালাতে চেয়েছিলাম তা কীভাবে চালাতে হয় তা তা জানত না। রান্নিনিগ /etc/rc.local এর সময় আমার উবুন্টু 14.04 সিস্টেমে লোড করা পথটি নিম্নলিখিত ছিল: / এসবিন: / ইউএসআর / এসবিন: / বিন: / ইউএসআর / বিন ... আপনি echo $PATH > /home/rc_local_pathআপনার / ইত্যাদি / আরসি.লোকাল এবং তারপরে ফাইলটি শুরু হওয়ার পরে পরীক্ষা করা।
কিসিনব্রানক্রাঞ্চ

মনে রাখবেন যে আপনার স্ক্রিপ্টটি যদি ধারাবাহিকভাবে চলতে হয় তবে আপনাকে এটিকেrc.local ফাইলটিতে ডেমন হিসাবে শুরু করতে হবে!
টটিমেডলি

সার্ভার শুরুর সময় নির্বাহ করা sudo systemctl enable rc-local.serviceহয়েছে তা নিশ্চিত করার জন্য ব্যবহার করুন/etc/rc.local
উইলিয়াম

উত্তর:


56

আপনি কি নিজের স্ক্রিপ্ট ম্যানুয়ালি চালাতে পারবেন? যদি তা না হয় তবে এই স্ক্রিপ্টটিতে এটি একটি সমস্যা; অন্যথায় rc.local এ আরও দেখুন। (যদি সেই স্ক্রিপ্টটি রুট হিসাবে চালানোর প্রয়োজন হয় তবে ম্যানুয়ালি এটি চালানোর জন্য আপনার sudo ব্যবহারের প্রয়োজন))

/Etc/rc.local নির্বাহযোগ্য এবং এটি যে স্ক্রিপ্টটি কল করে তা কার্যকর করার যোগ্য কিনা তা নিশ্চিত করুন।

$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 419 2010-08-27 11:26 /etc/rc.local

নিশ্চিত হয়ে নিন যে আরসি.লোকালের একটি শেবাং লাইন রয়েছে (যা পূর্বনির্ধারিত):

$ head -n1 /etc/rc.local
#!/bin/sh -e

হ্যাঁ, আমি স্ক্রিপ্টটি ম্যানুয়ালি চালাতে পারি। আমি কীভাবে নিশ্চিত করতে পারি যে /etc/rc.local কার্যকর হয়? আমার কী টাইপ করতে হবে? এটি কি "s ls -l /etc/rc.local -rwxr-xr-x 1"? ধন্যবাদ!
পেড্রো

@pedroo: আমি ঠিক অনুলিপি করেছেন কি আমি দেখতে আমার টার্মিনালে (যাতে আপনি প্রম্পট, ইনপুট, এবং আউটপুট সর্বোপরি দেখুন)। কমান্ডটি "ls -l /etc/rc.local" এবং যদি এটি এক্সিকিউটেবল হয়, তবে আউটপুটে এটি এক্স থাকবে।

3
আমি "ls -l /etc/rc.local" চেষ্টা করেছি এবং এটি এক্সিকিউটেবল, কিন্তু আমি এটি স্টার্টআপে চালাতে পারি না ... কোনও ধারণা?
পেড্রো

1
@pedroo: এটির জন্য এক্স সার্ভারটি চলমান দরকার, যা rc.local মৃত্যুদন্ড কার্যকর করার পরে ঘটে না। এটি আরসি.লোকাল থেকে চালানো কেবল কিছু না করেই প্রস্থান করবে (যদিও আমি আশা করি এটি সিসলগ বা অন্য কোথাও কোনও বার্তা রাখে)। পরিবর্তে আপনাকে xsetwacom কমান্ডগুলি ~ / .xinitrc বা / etc / X / xinit / xinitrc এ স্থাপন করতে হবে।

1
@pedroo: কারণ rc.local এ অন্য সময়ে চালানোর উদ্দেশ্যে আদেশগুলি রয়েছে। একটি নতুন ফাইল তৈরি করুন, আপনি এটিকে ~ / বিনে স্থাপন করতে পারেন , এটি এক্সিকিউটেবল (chmod বা নটিলাসের বৈশিষ্ট্য) চিহ্নিত করতে পারেন, প্রথম লাইন "#! / Bin / bash" করুন, তারপরে আপনার কমান্ডগুলি পরবর্তী লাইনে রাখুন।

53

আমার ক্ষেত্রে নির্দেশাবলীর কোনওটিই একটি নিখুঁত সমাধান ছিল না। আপনি যদি আমার মতো দুর্ভাগ্য হন তবে এই বিস্তারিতটি ব্যবহার করে দেখুন

  1. আপনার সমস্ত এক্সিকিউটিভ কোডগুলি foo.sh এর মতো একটি স্বেচ্ছাসেবী নাম সহ একটি পৃথক পাঠ্য ফাইলে রাখুন এবং এটিকে একটি স্বেচ্ছাসেবী জায়গায় সংরক্ষণ করুন।
  2. যোগ

    #!/bin/sh

    আপনার কোড প্রথম লাইন হিসাবে।

  3. দ্বারা আপনার foo.sh কার্যকর করার চেষ্টা করুন

    sudo foo.sh

    কোনও ত্রুটি নেই তা পরীক্ষা করতে।

  4. Sh / কমান্ডের পরে আপনার তৈরি স্ক্রিপ্টের পুরো পথ এবং নাম সহ আপনার /etc/rc.local স্ক্রিপ্ট সরবরাহ করুন

    sh '/path/to/your/script/foo.sh'
  5. কোডের শেষ লাইনের আগে উপরের লাইনটি মনে রাখবেন

    exit 0

    /etc/rc.local স্ক্রিপ্টের শেষে।

  6. /Etc/rc.local এর প্রথম লাইনটি পরীক্ষা করে দেখুন

    #!/bin/sh -e
  7. আপনার /etc/rc.local এক্সিকিউটেবল করুন যদি এটি ইতিমধ্যে সম্পাদনযোগ্য না হয়

    sudo chown root /etc/rc.local
    sudo chmod 755 /etc/rc.local
  8. নির্বাহের মাধ্যমে সবকিছু ঠিকঠাক কাজ করে দেখুন

    sudo /etc/init.d/rc.local start
  9. আপনার সিস্টেমটি পুনরায় চালু করুন পরীক্ষা করুন।

6
স্ক্রিপ্টটি প্রারম্ভিক পরিবেশের অধীনে চলবে তা যাচাই করে ৮ ম ধাপটি কী ছিল। আমার ক্ষেত্রে কমান্ডের পুরো পথটি আমার দেওয়া দরকার।
পিটার গ্লাক

প্রিফেক্ট এবং স্টেপ টু গ্রেটস, এটি সেন্টোতে কাজ করে তবে sudo /etc/rc.local startপ্রথম রান।
গার্ড

ধন্যবাদ - এই ব্রেকডাউনটি সত্যই আমার পক্ষে সাহায্য করেছিল এবং উপরের পদক্ষেপটি # 8 আমার পক্ষেও মূল বিষয় ছিল! এটি ব্যতীত এটি +1 পুনঃনির্দেশিত করবে না (রেফারেন্সের জন্য, বিটনামি ক্লাউড সার্ভারে নোড অ্যাপটি অবিচ্ছিন্নভাবে চলার জন্য চিরকাল ব্যবহার করে )।
ফিদেভ

৮ ম ধাপটি একটি ভাল টিপ ছিল, তবে আমি মনে করি যে ধাপ step
সাইনটি

28

আরও নতুন উবুন্টু সংস্করণ systemdব্যবহৃত হয় এবং /etc/rc.localসর্বদা ডিফল্টরূপে লোড হয় না।

সামঞ্জস্যতা পরিষেবাটি লোড হয়েছে কিনা তা পরীক্ষা করুন

systemctl status rc-local.service

স্ক্রিনশট

এটিতে যদি সক্রিয় থাকে (প্রস্থানিত) থাকে তবে আপনার সেটিংসটি দুর্দান্ত বলে মনে হচ্ছে এবং আপনার /etc/rc.localফাইলে অন্য কোনও ত্রুটি থাকতে পারে (এটি একটি আদেশ হতে পারে যা উদাহরণস্বরূপ ব্যর্থ হয়)।


4
আরসি-লোকাল.সার্ভিস সক্রিয় না হলে, এই পোস্টটি চেক করুন যাতে সিস্টেমডের সাথে কীভাবে /etc/rc.local সক্ষম করতে হবে
yaitloutou

3

2 পরামর্শ।

  1. লক্ষ্য স্ক্রিপ্ট ফাইলটি কার্যকর কার্যকর হিসাবে চিহ্নিত হয়েছে তা নিশ্চিত করুন।
  2. লক্ষ্য স্ক্রিপ্ট একটি sudo কমান্ড চলমান ? যদি তা হয় তবে আপনি এটিতে sudo পাসওয়ার্ড সরবরাহ করতে চাইতে পারেন।

আমার খারাপ। ঠিক তখনই একটি পরীক্ষা করুন। সংশোধন enzotib জন্য ধন্যবাদ :)


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