আমি একাধিক ব্যবহারকারীর সাথে লিনাক্স সার্ভারে এডিবি চালানোর চেষ্টা করছি যেখানে আমি মূল নই (আমার অ্যান্ড্রয়েড এমুলেটর দিয়ে খেলতে)। অ্যাডবি ডিমন ফাইলগুলিতে তার লগগুলি লিখেছে /tmp/adb.log
যা দুর্ভাগ্যবশত এডিবিতে কঠোর কোডড হয়েছে বলে মনে হচ্ছে এবং এই পরিস্থিতি কোনও পরিবর্তন হতে পারে না ।
সুতরাং, এডিবি রান করতে ব্যর্থ হচ্ছে সুস্পষ্ট ত্রুটি দান: cannot open '/tmp/adb.log': Permission denied
। এই ফাইলটি অন্য একজন ব্যবহারকারী দ্বারা তৈরি এবং /tmp
এতে স্টিকি বিট রয়েছে। যদি আমি adb nodaemon server
এটিকে স্টডআউটে লেখার চেষ্টা করে শুরু করি , তবে কোনও ত্রুটি ঘটবে না (বিবাদগুলি এড়ানোর জন্য আমি এর বন্দরটি একটি অনন্য মানতেও সেট আপ করেছি)।
আমার প্রশ্ন: এডিবি এর চেয়ে অন্য কোনও ফাইলে লেখার উপায় আছে /tmp/adb.log
কি? আরও সাধারণভাবে, কোনও প্রক্রিয়া-নির্দিষ্ট সিমিলিংক তৈরি করার কোনও উপায় আছে কি? আমি সমস্ত ফাইল অ্যাক্সেসগুলিতে /tmp/adb.log
একটি ফাইলকে পুনর্নির্দেশ করতে চাই ~/tmp/adb.log
।
আবার, আমি সার্ভারে রুট নই, সুতরাং chroot
, mount -o rbind
এবং chmod
বৈধ বিকল্প নয়। যদি সম্ভব হয় তবে আমি এডিবি উত্সগুলি সংশোধন না করতে চাই তবে অবশ্যই যদি অন্য কোনও সমাধান না হয় তবে আমি তা করব।
দ্রষ্টব্য নির্দিষ্ট এডিবি ক্ষেত্রে আমি চলমান অবলম্বন করতে adb nodaemon server
সঙ্গে nohup
এবং আউটপুট ফেরৎ কিন্তু সাধারণ প্রশ্ন এখনো প্রাসঙ্গিক।
LD_PRELOAD
কৌশল আছে, যদিও এটি আরও জটিল হবে।
/home/$USER/tmp/adb.log
এবং
/tmp/adb.log
, বা এমনকি নিজস্ব ব্যক্তিগতটিকে/tmp
পুরোপুরি মাউন্ট করতে পারেন । কিman unshare
এবংman namespaces
এবংman nsenter
।