ব্যবহারকারী লগনে একটি কমান্ড কার্যকর করুন


23

লিনাক্স ডেস্কটপ সিস্টেমে, ব্যবহারকারী লগ ইন করার সময় আমি একটি কমান্ড কার্যকর করতে চাই।

কিছু অন্যান্য পোস্ট পড়ার পরে, আমি কমান্ডটি sertোকানোর চেষ্টা করেছি ~/.bashrcকিন্তু ব্যর্থ। তদ্ব্যতীত, ব্যবহারকারী লগইন করার জন্য সিস্টেমটি একটি গ্রাফিক ইন্টারফেস ব্যবহার করে, সুতরাং কমান্ডটি শেল শুরুর সাথে সম্পর্কিত হওয়া উচিত নয়।

আমি /etc/profile.dকোনও ফলাফল ছাড়াই স্ক্রিপ্টগুলির মধ্যে একটিতে কমান্ড যুক্ত করার চেষ্টা করেছি ।

এই কাজ করার জন্য অন্য উপায় আছে কি? লগইন করার পরে সিস্টেমটি কোন ফাইল পড়ে?


উত্তর:


21

গ্রাফিকাল ডিসপ্লে ম্যানেজার ক্লাসিক স্টার্টআপ ফাইলগুলি পড়বে এমন কোনও গ্যারান্টি নেই। বিতরণ এবং ডিসপ্লে ম্যানেজারের মধ্যে এটি পরিবর্তিত হয়। নিম্নলিখিতগুলির মধ্যে একটিতে যদিও কাজ করা উচিত।

  1. প্রারম্ভিক অ্যাপ্লিকেশন সেট করতে আপনার ডেস্কটপ পরিবেশের নেটিভ পদ্ধতিটি ব্যবহার করুন। বিশদটি আপনি যে ডি ই ব্যবহার করছেন তার উপর নির্ভর করবে তবে আপনি এমন একটি স্ক্রিপ্ট তৈরি করতে পারেন যা আপনার কমান্ডটি চালায় এবং এটিকে স্টার্টআপ অ্যাপ্লিকেশনগুলির তালিকায় যুক্ত করতে পারেন। উদাহরণস্বরূপ, আমার সিস্টেমে (দারুচিনি), আপনি "সিস্টেম সেটিংস" => "স্টার্টআপ অ্যাপ্লিকেশনগুলি" এর মাধ্যমে এটি করতে পারেন।

  2. ব্যবহার করুন ~/.xprofile, এটি অন্তত জিডিএম, এলডিএম, লাইটডিএম এবং এলএক্সডিএম লগইন পরিচালকদের দ্বারা উত্সাহিত হয়।

  3. উপরের দুটি যদি কাজ না করে তবে কমান্ডটি যুক্ত করার চেষ্টা করুন ~/.profile: লগইন শেলগুলির জন্য এটি মূল সূচনা ফাইল এবং লগইনে কিছু গ্রাফিকাল শেল দ্বারা এটিও পড়তে পারে।

  4. @डरবার্ট মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, আপনি ফ্রি ডেস্কটপ স্ট্যান্ডার্ডগুলিও ব্যবহার করতে পারেন :

    অটোস্টার্ট ডিরেক্টরিগুলি হ'ল "ডেস্কটপ বেস ডিরেক্টরি স্পেসিফিকেশন" এর "রেফারেন্সিং এই স্পেসিফিকেশন" বিভাগ অনুসারে XDG_CONFIG_DIRS / অটোস্টার্ট।

    যদি একই ফাইলের নাম একাধিক অটোস্টার্ট ডিরেক্টরিগুলির অধীনে থাকে তবে কেবলমাত্র সবচেয়ে গুরুত্বপূর্ণ ডিরেক্টরিতে ফাইলটি ব্যবহার করা উচিত।

    উদাহরণ: যদি $ XDG_CONFIG_Home ব্যবহারকারীর হোম ডিরেক্টরিতে অটোস্টার্ট ডিরেক্টরি সেট না করা হয় তবে তা ~ / .config / অটোস্টার্ট /

    উদাহরণ: যদি D XDG_CONFIG_DIRS সেট না করা থাকে তবে সিস্টেমের প্রশস্ত অটোস্টার্ট ডিরেক্টরি / etc / xdg / অটোস্টার্ট /

    উদাহরণ: যদি $ XDG_CONFIG_Home এবং $ XDG_CONFIG_DIRS সেট না করা থাকে এবং দুটি ফাইল /etc/xdg/autostart/foo.desktop এবং ~ / .config / autostart / foo.desktop উপস্থিত থাকে তবে কেবল ফাইল ~ / .config / অটোস্টার্ট / foo থাকে। ডেস্কটপ ব্যবহার করা হবে কারণ etc / .config / অটোস্টার্ট / / etc / xdg / অটোস্টার্ট /

এখানে ~/.bashrcসম্পূর্ণ অপ্রাসঙ্গিক, এটি কেবল ইন্টারেক্টিভ নন-লগইন শেলগুলি দ্বারা পড়া হয়, তাই লগইন শেলগুলিতে উপেক্ষা করা হয়, গ্রাফিকাল বা না।


5
ডেস্কটপ অ্যাপ্লিকেশন অটোস্টার্ট স্পেসিফিকেশন অনুসারে উল্লেখ করতে চাই ~/.config/autostartএবং /etc/xdg/autostart/কোনটি মানক অবস্থান । এবং এছাড়াও এবং । /etc/X11/Xsession.d~/.xsession
ডার্বার্ট

6

আর একটি বিকল্প হ'ল প্যাম ব্যবহার করা - এটি আপনাকে অন-লগইন ক্রিয়া সংজ্ঞায়নের জন্য একটি সুনির্দিষ্ট উপায় প্রদান করবে।

জেনেরিক পদক্ষেপের জন্য আপনি pam_exec ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ) এর উপর নির্ভর করতে পারেন । তবে, যদি আপনাকে নিরাপদ উপায়ে আরও সুনির্দিষ্ট ক্রিয়া করা দরকার হয় তবে আরও বিশেষায়িত প্যাম মডিউল থাকতে পারে যা আরও ভাল ফিট করে যেমন সাধারণত ব্যবহৃত পাম_মাউন্ট (অন-লগইন মাউন্টগুলির জন্য - http: //manpages.ubuntu)। com / manpages / হার্ডি / man8 / pam_mount.8.html ) বা পাম_চেকো (ব্যবহারকারীদের কাছে স্বেচ্ছাসেবী বার্তার জন্য - http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html )।

সাধারণভাবে, পাম লগইনগুলি কাস্টমাইজ করার জন্য একটি খুব ঝরঝরে সিস্টেম, তাই অন্যরা যেভাবে পরামর্শ দিয়েছিল, আপনি সম্ভবত এটি সম্ভাব্য অনিরাপদ স্ক্রিপ্টিংয়ের উপর নির্ভর না করে আরও কিছুটা দেখতে চাইবেন।

উদাহরণ

মোটামুটি টিপিক্যাল /etc/pam.d/system-auth প্রদত্ত আমরা লগ-ইন করার পরে পাম_এক্সেক নিয়োগ করতে পারি:

session         optional        pam_ssh.so
session         required        pam_limits.so
session         required        pam_env.so
session         optional        pam_mktemp.so
session         required        pam_unix.so
session         optional        pam_exec.so /usr/local/bin/my_prog
session         optional        pam_permit.so

যেখানে /usr/local/bin/my_progসফল ব্যবহারকারী লগইনের পরে স্বেচ্ছাসেবী প্রোগ্রাম চালানো হয়।


2
এটি একটি ভাল উত্তর, যদিও আপনার লাইনটির একটি উদাহরণ অন্তর্ভুক্ত করা উচিত যা আপনি pamকনফিগারেশনটি যুক্ত করবেন যেহেতু এটি ক্ষুদ্র নয়।
গ্রামীণ

2

এই বিষয় অনুসারে: লগইন করার পরে স্বয়ংক্রিয়ভাবে কমান্ড চালান?

আপনার কাছে .bashrc(আপনার যা প্রয়োজন তা নয়) সমাধান এবং স্টার্টআপ অ্যাপ্লিকেশনগুলির সমাধান রয়েছে। আমি ড্যানিয়েল এস উদ্ধৃত:

gnome-session-properties স্টার্টআপ অ্যাপ্লিকেশনগুলি কনফিগার করতে ব্যবহার করা যেতে পারে।

এছাড়াও, আপনি যদি সিস্টেম বুট-এ চালানোর জন্য কোনও অ্যাপ্লিকেশন চান তবে আপনি নিজের ক্রন্টব-এ (ক্রোনট্যাব সম্পাদনা করুন crontab -e) এর সাথে নীচের মতো একটি বিধি যুক্ত করতে পারেন :

@reboot /run/this/program/at/boot >/dev/null 2>&1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.