লিনাক্স স্টার্টআপটিতে কোনও অ্যাপ্লিকেশন / স্ক্রিপ্ট যুক্ত করার কোনও উপায় কি তাই প্রতিবার সিস্টেম বুট করার পরে এটি কার্যকর করা হবে?
আমি কিছু স্বয়ংক্রিয় উপায় খুঁজছি, অর্থাত্ ব্যবহারকারীকে ক্রোন জব বা এটির মতো কিছু দিয়ে এটিকে যুক্ত করা উচিত নয়।
লিনাক্স স্টার্টআপটিতে কোনও অ্যাপ্লিকেশন / স্ক্রিপ্ট যুক্ত করার কোনও উপায় কি তাই প্রতিবার সিস্টেম বুট করার পরে এটি কার্যকর করা হবে?
আমি কিছু স্বয়ংক্রিয় উপায় খুঁজছি, অর্থাত্ ব্যবহারকারীকে ক্রোন জব বা এটির মতো কিছু দিয়ে এটিকে যুক্ত করা উচিত নয়।
উত্তর:
সিস্টেম-স্তরের প্রারম্ভিক স্ক্রিপ্টগুলি ছাড়াও আপনার ডেস্কটপ পরিবেশে স্বতঃ-চলমান প্রোগ্রামগুলির নিজস্ব উপায় থাকতে পারে। ফোল্ডারটি .config/autostartঅটোরান এন্ট্রি সংজ্ঞায়িত করার জন্য একটি ডেস্কটপ-নিরপেক্ষ উপায় বলে মনে করা হচ্ছে। /etc/xdg/autostartসিস্টেম-ব্যাপী কনফিগারেশনের জন্য। Http://developer.gnome.org/autostart-spec/ এ অনুমিত সম্পর্কে বিশদ ।
LXDE এর জন্য অটোস্টার্ট এন্ট্রিগুলিও সেট করা যেতে পারে ~/.config/lxsession/LXDE/autostart।
নেটওয়ার্কটি চালু হয়ে যাওয়ার পরে আপনার স্ক্রিপ্টগুলি চালনার দরকার হলে এটি কিছুটা আলাদা । সেক্ষেত্রে আপনার বিশেষ পোস্ট-সংযুক্ত স্ক্রিপ্টগুলি পরীক্ষা করা উচিত যা আপনার নেটওয়ার্ক ম্যানেজারের জন্য সংজ্ঞায়িত করা যায়। উভয় NetworkManager দ্বারা এবং wicd পোস্ট কানেক্ট অটোরান এন্ট্রি উল্লেখ তাদের নিজস্ব উপায় আছে। যদি নেটওয়ার্কের মাধ্যমে কনফিগার করা থাকে ifupdownতবে পোস্ট-আপ স্ক্রিপ্টগুলি /etc/network/if-up.d/ফোল্ডারে রাখা যেতে পারে । তবে সংযোগ-পরবর্তী পোস্টের স্ক্রিপ্টগুলি চালানোর জন্য আরও ভাল পদ্ধতির ব্যবস্থা করা যেতে পারে (এটি সমর্থনকারী সিস্টেমগুলির জন্য, যা আধুনিক ডিস্রোসের সংখ্যাগরিষ্ঠ)।
আপনি অটোস্টার্টটি যে জিনিসটি চান তা যদি কোনও গ্রাফিকাল অ্যাপ না হয় যার জন্য ডেস্কটপের প্রয়োজন হয় তবে xorg বা আপনার বর্তমান ডেস্কটপ পরিবেশ দ্বারা প্রদত্ত যে কোনও অটোস্টার্ট সুবিধা ব্যবহার করা এড়ানো ভাল।
systemd অনেক আধুনিক ডিস্ট্রোজে সর্বব্যাপী হয়ে উঠেছে এবং এটি আপনার পরিষেবাগুলি কীভাবে শুরু হয় এবং কীভাবে এটি চালিত হয় সে ক্ষেত্রে এটি প্রচুর নিয়ন্ত্রণ এবং নমনীয়তা সরবরাহ করে।
আমি কিছু সুবিধা সংক্ষিপ্ত করব ( সিস্টেমড আরও অনেক কিছু করতে পারে ):
User=myuserRestart=on-failure|on-watchdog|on-abnormal|alwaysType=simple|forking|oneshot|notify|dbusWants=network-online.targetমধ্যে [Unit]অধ্যায়)।একটি উদাহরণ পরিষেবা যা একটি টেলিগ্রাম-ক্লাইম ডেমন শুরু করে। এটি রাখুন /etc/systemd/system/tg.service।
[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli
User=jicu
[Install]
WantedBy=multi-user.target
এখন আপনি পরিষেবাটি অটোস্টার্টে সক্ষম করতে পারবেন:
sudo systemctl enable tg
পরিষেবাটি শুরু করুন:
sudo systemctl start tg
পরিষেবা বন্ধ করুন:
sudo systemctl stop tg
স্থিতি পরীক্ষা করুন:
systemctl status tg
পরিষেবাটি অক্ষম করুন:
sudo systemctl disable tg
অতিরিক্ত টাইপিং বাঁচাতে আপনি আপনার ~/.bashrcলাইনে যুক্ত করতে পারেন তবে আপনি alias sc='sudo systemctl $*'উপরের আদেশগুলি সংক্ষিপ্ত করতে সক্ষম হবেন উদাহরণস্বরূপ sc start tg।
দ্রষ্টব্য: আপনি যদি ব্যবহার করেন
cronতবে সচেতন হন যে ক্রোনটব এন্ট্রিগুলি একটি সীমাবদ্ধ পরিবেশে চালিত হয় - এটি একই ক্ষেত্রে প্রযোজ্যsystemd: সর্বদা নিখুঁত পাথ ব্যবহার করুন এবং কোনও ভেরিয়েবল সংজ্ঞায়িত হওয়ার কোনও অনুমান করবেন না। আপনার স্ক্রিপ্টগুলি নির্ভর করে এমন কোনও ভেরিয়েবল সুস্পষ্টভাবে সেট করুন। আপনার ব্যবহারকারীর এবং ব্যবহারsystemdকরবে না ।.bashrc$PATH
অধিক তথ্য:
হ্যাঁ লিনাক্সের স্টার্টআপে এক্সিকিউটেবলের জন্য পাথগুলি নির্দিষ্ট করে rc.localযা ডিরেক্টরি /etcবা /etc/rc.dডিরেক্টরিতে থাকে তার উদাহরণ নির্ধারণের মাধ্যমে প্রোগ্রামগুলি চালানো সম্ভব :
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/path/to/executable
দ্রষ্টব্য: ফাইলের ডকুমেন্টেশনে বর্ণিত হিসাবে এক্সিকিউটেবল অধিকারগুলি অর্পণ করতে ভুলবেন না Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
Startup applicationsহোম বোতাম ব্যবহার করার জন্য অনুসন্ধান করুনAdd Startup command boxকমান্ড লিখুনOK(তালিকায় আপনার নতুন কমান্ডটি দেখতে হবে)Close পুনরায় চালু বা লগ আউট এবং পিছনে ফিরে পরীক্ষা করুন।
সূত্র: https://help.ubuntu.com/commune/AddingProgramToSessionStartup
প্রতিটি বিতরণ প্রতিটি নিজস্ব বুটস্ট্র্যাপ কৌশল ব্যবহার করে, তাই আপনার ডিসট্রোর জন্য ডক্সের দিকে নজর দেওয়া দরকার। /etc/rc.local এমন একটি জায়গা যেখানে আপনি কয়েকটি স্বয়ংক্রিয় স্ক্রিপ্ট রাখতে পারেন তবে এটি সত্যই পুরানো। এখন বেশিরভাগ লিনাক্স ভিত্তিক সিস্টেম রানলেভেল বা সিস্টেমযুক্ত বুটস্ট্র্যাপ ব্যবহার করে, তাই বেশিরভাগ অটোস্টার্ট কাজ সূক্ষ্ম-গ্রেড দ্বারা নিয়ন্ত্রিত হতে পারে।
আমি আমার উত্তরটি এখানে পেয়েছি: /programming/7221757/run-auto चालित-program-on-startup-und-linux-ubuntu আমি যখন ছিলাম আমি আমার ট্র্যাকপ্যাড বন্ধ করার জন্য একটি ফাইল / স্ক্রিপ্ট তৈরি করতে সক্ষম হয়েছি আমার লিনাক্স উবুন্টু 12.10 সেশন।