কিভাবে সিস্টেম রিবুটে লিনাক্স কমান্ড এবং স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে চালানো যায়

How Run Linux Commands



স্টার্টআপে স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন এবং স্ক্রিপ্ট চালানো সাধারণ বুট টাস্ক এবং ইভেন্টগুলি স্বয়ংক্রিয় করার জন্য দরকারী হতে পারে। এই নিবন্ধটি কয়েকটি পদ্ধতি ব্যাখ্যা করবে যা একটি নতুন রিবুট বা নতুন লগইন এ অ্যাপস এবং স্ক্রিপ্ট চালু করার জন্য ব্যবহার করা যেতে পারে।

স্টার্টআপ অ্যাপ্লিকেশন

উবুন্টু এবং অন্যান্য জিনোম ভিত্তিক বিতরণগুলি একটি অ্যাপ্লিকেশন দিয়ে আসে যা কেবল স্টার্টআপ অ্যাপ্লিকেশন নামে পরিচিত। এটি একটি নতুন সিস্টেম রিবুট বা লগইন চালানো অ্যাপ্লিকেশন এবং স্ক্রিপ্ট পরিচালনার জন্য ব্যবহার করা যেতে পারে।







অ্যাপ্লিকেশন লঞ্চার থেকে স্টার্টআপ অ্যাপ্লিকেশনগুলি চালু করুন এবং একটি নতুন এন্ট্রি যুক্ত করতে অ্যাড বোতামে ক্লিক করুন।





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





উপরে উল্লিখিত হিসাবে, প্রতিটি রিবুটটিতে একটি ব্যাকআপ অনুস্মারক দেখানো হয়।



সিস্টেমড

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

সিস্টেমড স্বয়ংক্রিয়ভাবে একটি অ্যাপ চালু করতে বা নতুন বুটে স্ক্রিপ্ট চালানোর জন্য ব্যবহার করা যেতে পারে। উপরে বর্ণিত একই ব্যাকআপ অনুস্মারক বিজ্ঞপ্তি তৈরি করতে, প্রথমে আপনাকে নীচের কমান্ডগুলি চালিয়ে প্রয়োজনীয় ফোল্ডার এবং ফাইল তৈরি করতে হবে:

$mkdir -পি~/কনফিগ/পদ্ধতি/ব্যবহারকারী
$ন্যানো~/কনফিগ/পদ্ধতি/ব্যবহারকারী/backup_reminder.service

আপনার প্রিয় টেক্সট এডিটরের কমান্ড দিয়ে ন্যানো প্রতিস্থাপন করুন। আপনার পছন্দের অন্য যেকোনো নাম দিয়ে backup_reminder প্রতিস্থাপন করুন।

উপরের কমান্ড ব্যবহার করে তৈরি করা backup_reminder.service ফাইলে নিচের কোডটি আটকান।

[ইউনিট]
বর্ণনা = প্রতিটি রিবুট এ একটি ব্যাকআপ রিমাইন্ডার পাঠায়
PartOf = graphical-session.target

[পরিষেবা]
ExecStart = bash -c 'ঘুম 10; বিজ্ঞপ্তি পাঠান 'একটি ব্যাকআপ তৈরি করুন'
টাইপ = অনশট

[ইনস্টল করুন]
WantedBy = graphical-session.target

উপরের কোডটি বেশ সহজবোধ্য। গ্রাফিকাল সেশন লোড হওয়ার 10 সেকেন্ড পরে এটি একটি ব্যাকআপ বিজ্ঞপ্তি পাঠায় (একবার প্রতি রিবুট বা লগইন)।

পরিষেবাটি সক্ষম করতে নীচের কমান্ডগুলি চালান যাতে এটি স্বয়ংক্রিয়ভাবে প্রতিটি রিবুট চালাতে পারে।

$chmod 644~/কনফিগ/পদ্ধতি/ব্যবহারকারী/backup_reminder.service
$ systemctl-ব্যবহারকারী সক্ষম করুনbackup_reminder.service
$ systemctl-ব্যবহারকারীডেমন-পুনরায় লোড
$ রিবুট

এটি systemd ব্যবহার করে বুটে মৌলিক কমান্ড চালানোর একটি সহজ উদাহরণ। আপনি একাধিক শর্ত এবং একাধিক কমান্ড দিয়ে উন্নত পরিষেবা তৈরি করতে পারেন। আরও তথ্যের জন্য, নীচের কমান্ডটি চালিয়ে সিস্টেমড ম্যান পৃষ্ঠাটি পড়ুন:

$মানুষপদ্ধতি

মনে রাখবেন যে এই উদাহরণটি একটি নতুন পরিষেবা তৈরির ব্যাখ্যা দেয় যার জন্য রুট অ্যাক্সেসের প্রয়োজন হয় না এবং স্বয়ংক্রিয়ভাবে শুরু হওয়া অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত যা রুট অনুমতিগুলির প্রয়োজন হয় না। যদি আপনি রুট অ্যাক্সেসের প্রয়োজন স্ক্রিপ্টগুলিকে স্বয়ংক্রিয়ভাবে শুরু করতে চান, তাহলে আপনাকে etc/.config/systemd/user ফোল্ডারের পরিবর্তে/etc/systemd/system ডিরেক্টরিতে একটি নতুন systemd পরিষেবা তৈরি করতে হবে এবং উপরে উল্লিখিত কমান্ডগুলিতে – ইউজার সুইচ বাদ দিতে হবে।

ক্রন জব

ক্রোন এমন একটি টুল যা ব্যবহারকারীর দ্বারা নির্দিষ্ট শর্ত অনুযায়ী পর্যায়ক্রমে নির্ধারিত কাজগুলি চালাতে পারে। এই পূর্বনির্ধারিত বিন্যাসে Crontab এ এই নির্ধারিত কাজগুলি তৈরি করা হয়। সহজ কথায়, ক্রন্টাব ক্রনকে বলে যে কোন সময়ে কোন কাজ চালাতে হবে।

Systemd এর মতো, ক্রন্টাব জবগুলি অ্যাপ চালু করতে এবং স্ক্রিপ্টগুলি বুটে স্বয়ংক্রিয়ভাবে চালানোর জন্য ব্যবহার করা যেতে পারে। একটি নতুন ক্রন কাজ যুক্ত করতে, নীচের কমান্ডটি চালান:

$crontab-এবং

পাঠ্য ফাইলের শেষে নিম্নলিখিত লাইনগুলি যুক্ত করুন (স্বয়ংক্রিয়ভাবে প্রতিটি রিবুটে জিনোম টার্মিনাল চালু করে):

শেল =/বিন/ব্যাশ
@রিবুট স্লিপ 30 && ডিসপ্লে =: 0 জিনোম-টার্মিনাল

আপনি আপনার নিজস্ব কমান্ড ব্যবহার করতে পারেন অথবা শেল স্ক্রিপ্টে সম্পূর্ণ পথ সরবরাহ করতে পারেন।

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

$বের করে দিল $ ডিসপ্লে

কমান্ড বা স্ক্রিপ্ট কার্যকর করার আগে বিলম্ব আপনার সিস্টেম কনফিগারেশন এবং বুট সময় উপর নির্ভর করে।

Rc. স্থানীয়

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

Rc.local ফাইলে কমান্ড / স্ক্রিপ্ট যুক্ত করতে, নিচের কমান্ডটি চালান (যদি এটি না থাকে তবে একটি নতুন rc.local ফাইল তৈরি করে):

$sudo ন্যানো /ইত্যাদি/rc.local

#এর মধ্যে আপনার কমান্ড যোগ করুন! /bin/bash এবং 0 লাইন থেকে প্রস্থান করুন, নীচে দেখানো হয়েছে:

#! /বিন/ব্যাশ
path/to/my_script.sh
প্রস্থান 0

Rc.local ফাইলটি এক্সিকিউটেবল করুন নিচের কমান্ডটি চালানোর মাধ্যমে:

$sudo chmod+ এক্স/ইত্যাদি/rc.local

প্রারম্ভিক স্ক্রিপ্টটি কার্যকর হওয়ার জন্য কেবল পুনরায় বুট করুন।

উপসংহার

এই কয়েকটি পদ্ধতি যা স্টার্টআপে স্বয়ংক্রিয়ভাবে স্ক্রিপ্ট এবং অ্যাপ্লিকেশন চালানোর জন্য ব্যবহার করা যেতে পারে। আপনি যদি এমন স্ক্রিপ্ট চালাতে চান যার জন্য রুট অ্যাক্সেসের প্রয়োজন হয় না, আমি স্টার্টআপ অ্যাপ্লিকেশন জিইউআই অ্যাপ ব্যবহার করার পরামর্শ দেব। আপনি যদি রুট অ্যাক্সেস সহ অ্যাপস এবং স্ক্রিপ্ট চালাতে চান, আমি আপনাকে একটি সিস্টেম লেভেল systemd সার্ভিস তৈরি করার পরামর্শ দেব।

লেখক সম্পর্কে

নিতেশ কুমার

আমি একজন ফ্রিল্যান্সার সফটওয়্যার ডেভেলপার এবং বিষয়বস্তু লেখক যিনি লিনাক্স, ওপেন সোর্স সফটওয়্যার এবং ফ্রি সফটওয়্যার কমিউনিটি পছন্দ করেন।

সব পোস্ট দেখুন