আমি মনে করি উভয় -cপরামিতি ( suএবং bash) সর্বনিম্ন উদ্ধৃত করতে হবে।
su - username -c "/usr/bin/screen -dmS test bash -c '/var/www/path/to/script/script.sh; exec bash'"
এছাড়াও -শেষ হতে পারে এবং এখানে কাম্য হতে পারে না (দেখুন man su)।
আরও কয়েকটি মন্তব্য। আপনার মতো ওয়ান-শট কমান্ডের জন্য আরও ভাল পছন্দ sudo হতে পারে তবে এটি অগত্যা নয়:
sudo -iu username /usr/bin/screen -dmS test bash -c '/var/www/path/to/script/script.sh; exec bash'
বিশেষত, আপনি একটি কম স্তরের সাথে উদ্ধৃতি ব্যবহার করতে পারেন sudo।
আপনি যে সাবধানতা অবলম্বন করতে চান অন্যটি হ'ল সুবিধাযুক্ত প্রসঙ্গে নিরঙ্কুশ পথ ছাড়াই আদেশগুলি সম্পাদন করা। এটি su(বা sudo) তবে bashআপনার কমান্ডে যাওয়ার পথটিকেও ধারণ করে । আপনি ঠিক সঙ্গে এটি করছেন screen।
কেবলমাত্র নিম্নলিখিতটি পরীক্ষা করা হয়েছে এবং এটি দুর্দান্তভাবে কাজ করে। আমি মনে করি এটিই -আপনার মূল লাইনের মূল সমস্যা:
/bin/su username -c "/usr/bin/screen -dmS test bash -c '/home/username/test.sh; exec bash'"
অশুভ মন্তব্য: আপনি কেন tmuxচেষ্টা করবেন না ? আমি সম্প্রতি স্যুইচ করেছি এবং কখনই পিছনে ফিরে দেখিনি। আমি শুধু সঙ্গে সঙ্গে পরিবর্তন করা প্রয়োজন উপসর্গ কী সমন্বয় ছিল যা tmuxডিফল্ট Ctrl+ + B- এতে গনুহ ফিরে screen'র Ctrl+ + A।
এটি আপনার উইন্ডোটিকে প্রায় স্বেচ্ছাসেবী সংখ্যক প্যানে (উল্লম্ব এবং অনুভূমিকভাবে) বিভক্ত করতে দেয় এবং এর কনফিগারেশন ফাইল ফর্ম্যাটকে (স্ট্যাটাসের সমেত একটি সহ) প্রকৃতপক্ষে মানুষের কাছে বোধগম্য। অবশ্যই tmuxহিসাবে ভাল হিসাবে screenযখন আপনি কেবল কিছু প্রোগ্রাম / স্ক্রিপ্ট মূলত পটভূমিতে ডেমন হিসেবে লেখা না চালাতে চান। আপনি যদি টার্মিনাল মাল্টিপ্লেক্সারের সাথে ইন্টারঅ্যাক্ট করতে চান তবে আমি উষ্ণতার সাথে সুপারিশ করছি tmux।
suনাকিsudo?