ক্রন্টব জব @reboot এর +1 মিনিট পরে শুরু হয়


42

প্রতিটি রিবুটে +1 মিনিটের মধ্যে সম্পাদিত একটি স্ক্রিপ্ট দরকার। আমি একটি রেকর্ড রেখেছি @rebootতবে এটি আমার স্ক্রিপ্টের জন্য খুব তাড়াতাড়ি। পুনরায় বুট করার পরে এটি কীভাবে কার্যকর করা যায়?


2
খুব তাড়াতাড়ি কেন ? হয়তো কোনও এনআইআই স্ক্রিপ্ট আরও উপযুক্ত হবে (নির্ভরতা সম্পর্কিত, যেমন এই স্ক্রিপ্টটির জন্য প্রথমে নেটওয়ার্কিং স্থাপন করা দরকার )?
sr_

আমার স্ক্রিপ্টটি অন্য সকলের পরে কার্যকর করা দরকার, সংক্ষিপ্ত কথায় শেষ
ইউরিজ 73 ই

যেহেতু আপনার কাজটি সমস্ত কিছুর পরে সম্পাদন করা দরকার এবং যেহেতু সবকিছুর ধারণাটি যথেষ্ট পরিবর্তনশীল (একটি নতুন অটোস্টার্ট @ রিবুট অ্যাপ্লিকেশন যোগ করা এত অস্বাভাবিক নয়), আমি মনে করি আপনার কাজটি আরসি স্ক্রিপ্টগুলিতে একটিতে স্থান দেওয়া আপনার পক্ষে হবে উপায় যে আপনার উদ্দেশ্য সার্ভার। /Etc/rc.local এ উল্লিখিত কার্যগুলির নীচে আপনার টাস্কটি রাখা আপনার পছন্দটি সাধারণত হয় তবে আপনার সিস্টেমের প্রারম্ভিক কনফিগারেশনের উপর নির্ভর করে এটি সর্বদা সত্য না ধরে থাকে। সুতরাং, এটি পরীক্ষা করুন এবং দেখুন এটি আপনার পক্ষে কাজ করে কিনা।
মেলবার্সন

আপস্টার্টের ক্ষেত্রে কি মনে হচ্ছে?
এনএফজি

উত্তর:


64

স্ক্রিপ্টটি কি কখনও বুটআপের এক মিনিট পরে চালানোর উদ্দেশ্যে তৈরি হয়েছিল, বা এটি অন্যান্য সময়েও ব্যবহার করা যেতে পারে? পূর্ববর্তী ক্ষেত্রে, আপনি sleep 60আপনার স্ক্রিপ্টের শুরুতে বা পরবর্তী ক্ষেত্রে এটি ক্রন্টব ফাইলটিতে যুক্ত করতে পারেন:

@reboot sleep 60 && my_script.sh

যেমন sr_ দ্বারা নির্দেশিত হয়েছে, যদিও, সম্ভবত আপনি এটি ভুল উপায়ে মোকাবেলা করছেন এবং একটি উপযুক্ত init.d বা rc.d স্ক্রিপ্ট আরও শক্তিশালী সমাধান হতে পারে।


1
অথবা দেরিটি টুইট করার জন্য একটি কমান্ড লাইন বিকল্প ব্যবহার করুন (উদাহরণস্বরূপ script -s Xযা sleep Xস্ক্রিপ্টের অভ্যন্তরে অনুবাদ করবে )।
পিটার্ফ

আমি কি এটি /etc/init.d/ এ টাস্করুনারের ফাইলটিতে প্রয়োগ করতে পারি?
অ্যান্ড্রেস অ্যাঞ্জেল

@ অ্যান্ড্রেস অ্যাঞ্জেল - আমি দুঃখিত, আমি জানি না। আমি FreeBSD 'র ব্যবহার যা নেই taskrunner, কিংবা, যে বিষয়টি জন্য,/etc/init.d
D_Bye

আমার রেল 7 ঘুম মোটেও কাজ করে না, এটি চিরকাল ঘুমায় & কখনই ফিরে আসে না।
ইন্দির আর সিং

16

নেটওয়ার্ক উপলব্ধ হয়ে উঠলে আপনাকে পুনরায় বুট করার পরে যদি কিছু সম্পাদন করতে হয়, উদাহরণস্বরূপ, আপনি সিস্টেমড ইউনিট লিখতে পারেন যা প্রয়োজনীয় সময়ে কার্যকর করা হবে (অবশ্যই এটি কেবল সিস্টেমডযুক্ত সিস্টেমে কাজ করবে)।

/etc/systemd/system/my_script.serviceনিম্নলিখিত বিষয়বস্তু সহ ফাইল তৈরি করতে :

[Unit]
Description=My script that requires network
After=network.target

[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh

[Install]
WantedBy=multi-user.target

তারপরে কার্যকর করুন:

sudo systemctl daemon-reload
sudo systemctl enable my_script

তুমি করেছ!


11

আমি ব্যবহার করব at। হিসাবে:

@reboot echo /root/bin/do_the_stuff | at now + 2 minutes
# at assigns it an execution time truncated to whole minutes,
# so this means it will execute in 1--2 minutes.

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

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