আমি কীভাবে উবুন্টু সার্ভার 17.10 এ স্টার্টআপে একটি স্ক্রিপ্ট চালাতে পারি?


13

আমি কীভাবে কোনও উবুন্টু সার্ভার 17.10 মেশিনে প্রারম্ভকালে স্ক্রিপ্টটি চালাতে পারি? আমি মনে করি পদ্ধতিটি 17.10-এ পরিবর্তিত হয়েছিল।

উত্তর:


14

স্ক্রিপ্টটি যথাযথ ব্যবহারকারীর cronটেবিলে (অর্থাত্ ক্রন্টব ) একটি শিডিয়ুল সহ রাখুন @reboot

একটি ব্যবহারকারী এর cronসারণীটি এর সাথে সম্পাদনা করতে পারে crontab -e

একটি উদাহরণ যা /path/to/script.shপ্রারম্ভকালে চলবে :

@reboot /path/to/script.sh

আপনার যদি এটি রুট হিসাবে চালানোর দরকার হয় তবে ব্যবহার করবেন না @reboot sudo /path/to/script.sh; রুটের ক্রোনটব সম্পাদনা করতে
ব্যবহার sudo crontab -eu rootকরুন।

আরও দেখুন: ক্রোন্টাব (1), ক্রোন (8), ক্রোনটব (8)


2

উবুন্টু 15.04 এবং ফরোয়ার্ড ডিফল্টরূপে ডাকা হয় এমন কিছু ব্যবহার করে systemdযা একটি প্রোগ্রাম (প্রকারের) যা স্টার্টআপ পরিষেবাদি এবং পদ্ধতিগুলি স্বয়ংক্রিয় করে তোলে। আপনি নিজের তৈরি করতে পারেন এবং এটিকে কিছুটা চেষ্টা করে স্টার্টআপ পরিষেবাদির তালিকায় যুক্ত করতে পারেন।

বেসিক সিস্টেমড পরিষেবা

এটি একটি বেয়ারবোনস .serviceফাইল যা আমার অজগর গুই সার্ভারটি চালু করতে ব্যবহার করা যেতে পারে (শেল স্ক্রিপ্ট হতে পারে, এটি কোনও ব্যাপার নয়):

[Unit]
Description=Python GUI Server

[Service]
ExecStart=/home/pi/software/GUI_POE.py &

[Install]
WantedBy=multi-user.target

Descriptionবিকল্প কোনো স্ট্রিং, যাতে বর্ণিত কি সেবা বা নেই।

ExecStartবিকল্প কমান্ড চালানো নির্দিষ্ট করে। এখানে, আমি এক্সিকিউটেবল অজগর স্ক্রিপ্টের জন্য একটি পথ দেব &এবং এটি ব্যাকগ্রাউন্ডে চালানোর জন্য টোকেনটি ব্যবহার করি।

WantedByবিকল্প নির্দিষ্ট করে প্রাধান্য, কি লক্ষ্য উপর ভিত্তি করে এই সেবা ব্যবহার করতে চায়। আপনার যদি কোনও নির্দিষ্ট সময়ে চালানোর জন্য আপনার পরিষেবাটির প্রয়োজন না হয় তবে কেবল এটিকে সেট করুন multi-user.target

বেসিক পদ্ধতি

  1. আপনি যে স্ক্রিপ্টটি শুরুতে চালাতে চান তা লিখুন nanoবা আপনার পছন্দের কোনও সম্পাদক ব্যবহার করুন editor নিশ্চিত করুন যে আপনি ফাইলের একেবারে শীর্ষে সঠিক শেবাং অন্তর্ভুক্ত করেছেন ( #!/bin/bashব্যাশ স্ক্রিপ্টগুলির জন্য), এবং এটি দিয়ে সম্পাদনযোগ্য অনুমতি দিন chmod

  2. আপনার সার্ভিসটি my_service.service নামক কোনও ফাইলে লিখে দিন এবং তারপরে এটি যথাযথ ডিরেক্টয়য়ে অনুলিপি করুন cp my_service.service /lib/systemd/system/

  3. আপনার সেবা শুরু করুন: sudo systemctl start my_service.service। আপনি আপনার পরিষেবা চালনার জন্য যা স্ক্রিপ্ট বলেছেন তা এটি চালু করে। শুরু না করে "স্টপ" সহ একই কমান্ডটি এটি বন্ধ করে দেবে।

  4. স্টার্ট আপ প্রক্রিয়া আপনার সেবা যোগ করুন sudo systemctl enable my_service.service। এটি অপসারণ করতে, কেবল একই আদেশে "অক্ষম" দিয়ে "সক্ষম" প্রতিস্থাপন করুন।

এবং এটাই! মনে রাখবেন যে আপনার স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে রুট অনুমতি নিয়ে চালিত হবে, এটি সিস্টেমড পরিষেবায় ডিফল্ট হিসাবে।

আমার সরল উদাহরণ (সম্পূর্ণ)

রেফারেন্সের জন্য, এখানে আমার কাছে একটি সহজ সিস্টেমযুক্ত পরিষেবা রয়েছে যা ড্যাশ ব্যবহার করে একটি সাধারণ পাইথন জিইউআই সার্ভার চালু করে:

[Unit]
Description=Python GUI Server
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/home/pi/software
ExecStart=/home/pi/software/GUI_POE.py &
Restart=always
RestartSec=15s
KillMode=process
TimeoutSec=infinity
User=pi
Group=pi

[Install]
WantedBy=multi-user.target

এই উদাহরণ পরিষেবাটি পাইথন 3 স্ক্রিপ্ট ব্যবহার করে তবে সূত্রটি শেল স্ক্রিপ্টের জন্য ঠিক একই।

ডিজিটালঅ্যাসনের এই দুর্দান্ত টিউটোরিয়ালটিতে আরও পড়ার সন্ধান পাওয়া যায় এবং এই আস্কউবুন্টু থ্রেড একটি দুর্দান্ত উত্তর দিয়ে আমাকে সিস্টেমড শিখতে সহায়তা করে। আশাকরি এটা সাহায্য করবে!


2
এই প্রশ্নের একটি সিস্টেমিত দৃষ্টিভঙ্গি আনার জন্য আপনাকে ধন্যবাদ! আমি উল্লেখ করব যে এক্সিকিস্টার্ট লাইনে ব্যাকগ্রাউন্ডিং জোর করার কোনও প্রয়োজন নেই।
জেফ শ্যাচলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.