আমার একটি সার্ভার রয়েছে যা ফেডোরা 19. চালায় যখন সার্ভার বুট হয়, আমাকে কমান্ডের গুচ্ছ চালানোর প্রয়োজন হয়। আমি এই কাজ /etc/rc.d/rc.local ফাইল। এই ভাল কাজ করে। এখন আমি আমার শুরু করতে হবে nodejs এই স্ক্রিপ্ট থেকে সার্ভার।
আমি সার্ভার প্রোগ্রাম হিসাবে শুরু করতে চান না root। তাই আমি নিম্নলিখিত মত কিছু চেষ্টা rc.local ফাইল।
su myuser -c /home/myuser/project/path/prod_start.sh
এই executes prod_start.sh যেমন myuser। কিন্তু prod_start.sh, আমি অ্যাপ্লিকেশন রুট ডিরেক্টরি থেকে ডিরেক্টরি পরিবর্তন করছি। এটি চলমান হওয়ার আগে কিছু পরিবেশের ভেরিয়েবল সেট করাও প্রত্যাশা করে। কিন্তু এই পরিবেশ ভেরিয়েবল সংজ্ঞায়িত করা হয় bash_profile ব্যবহারকারীর জন্য myuserতাদের কেউই প্রভাব ফেলেনি এবং স্ক্রিপ্টটি ব্যর্থ হয়েছে।
আমি ভাবছি কিভাবে আমি একটি ভিন্ন ব্যবহারকারী হিসাবে একটি কমান্ড চালাতে পারি যাতে তার জন্য প্রয়োজনীয় সমস্ত পরিবেশ ভেরিয়েবলগুলি প্রয়োজন? আমি কি এই সমস্ত পরিবেশের ভেরিয়েবলগুলি সিস্টেম স্তরে সেট করব যাতে এটি সমস্ত ব্যবহারকারীদের জন্য উপলব্ধ?
XSession সেখানে হবে না। bash_login ssh এর মাধ্যমে লগ-ইন করার সময় এটি ট্রিগার হিসাবেও একটি বিকল্প নয়।
~/.bash_profile। আপনি এটি কাজ করতে সক্ষম হতে পারে su myuser bash -c "script.sh" যে সম্ভবত পড়তে হবে ~/.bash_profile।
~/bash_loginঅথবা~/.Xsessionনথি পত্র.