ফেডোরা বুট করার সময় আমি কিভাবে একটি পৃথক ব্যবহারকারী হিসাবে কমান্ড চালাতে পারি?


0

আমার একটি সার্ভার রয়েছে যা ফেডোরা 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তাদের কেউই প্রভাব ফেলেনি এবং স্ক্রিপ্টটি ব্যর্থ হয়েছে।

আমি ভাবছি কিভাবে আমি একটি ভিন্ন ব্যবহারকারী হিসাবে একটি কমান্ড চালাতে পারি যাতে তার জন্য প্রয়োজনীয় সমস্ত পরিবেশ ভেরিয়েবলগুলি প্রয়োজন? আমি কি এই সমস্ত পরিবেশের ভেরিয়েবলগুলি সিস্টেম স্তরে সেট করব যাতে এটি সমস্ত ব্যবহারকারীদের জন্য উপলব্ধ?


কেন আপনি লগ ইন করার সময় এটি শুরু না? আপনার স্ক্রিপ্ট চালান আপনার ~/bash_login অথবা ~/.Xsession নথি পত্র.
terdon

এটি একটি শিরোনাম সার্ভার। সুতরাং XSession সেখানে হবে না। bash_login ssh এর মাধ্যমে লগ-ইন করার সময় এটি ট্রিগার হিসাবেও একটি বিকল্প নয়।
Navaneeth K N

আচ্ছা, আপনি এটা সব পেতে পারে না। আপনি নিজেই স্ক্রিপ্টে আপনার ভেরিয়েবল সেট করতে পারে। আপনি স্ক্রিপ্ট থেকে শুরু হতে পারে ~/.bash_profile। আপনি এটি কাজ করতে সক্ষম হতে পারে su myuser bash -c "script.sh" যে সম্ভবত পড়তে হবে ~/.bash_profile
terdon

উত্তর:


1

যদি আপনি '-' সুইচ যুক্ত করেন তবে এটি মাইউসারের প্রোফাইল লোড করবে। অন্য কথায় আপনি হেডারহীন অবস্থায় লোড হওয়া প্রোফাইল পরিবেশের ভেরিয়েবল থাকতে পারেন।

su - myuser -c "cmd_to_execute"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.