আমি নোড.জেএস একটি অনিবদ্ধ ব্যবহারকারী হিসাবে চালানোর চেষ্টা করছি (এক্ষেত্রে dmitry) কেউ আশা করছেন নিশ্চিত করতে পারেন বা, প্রয়োজন হিসাবে, দয়া করে নীচে আমি কী দেখছি তা বিস্তারিতভাবে বর্ণনা করুন:
উবুন্টু 12.04 এবং আপস্টার্ট ব্যবহার করে, আমি একটি কাজের স্ক্রিপ্ট লিখেছিলাম যা নিম্নলিখিতগুলিকে কল করে:
exec sudo -u dmitry /usr/bin/node /home/dmitry/node/linkskeeper/app.js >> /var/log/linkskeeper.sys.log 2>&1
এই বিবৃতিটি একটি ফাইলে বাস করে /etc/init/linkskeeper.confএবং আমি প্রার্থনা করি
$ sudo service linkskeeper start
আমি যখন এই প্রসারণগুলির প্রক্রিয়াগুলি পরীক্ষা করি তখন আমি দেখতে পাই:
$ ps aux | grep node
root 28349 0.0 0.2 40908 1672 ? Ss 16:51 0:00 sudo -u dmitry /usr/bin/node /home/dmitry/node/linkskeeper/app.js
dmitry 28350 2.1 2.1 641784 13268 ? Sl 16:51 0:00 /usr/bin/node /home/dmitry/node/linkskeeper/app.js
এটি প্রদর্শিত হয় যে প্রাথমিক execকলটি পিডকে 28349রুট হিসাবে স্প্যান করে , যা অনতিবিলম্বে 28350অ্যাকাউন্টের সাথে পাল্টে দেয় । এটি যদি সঠিক বিবরণ হয় তবে তা আমার কাছে বোধগম্য। মজার বিষয় হল, নীচে রেফারেন্স [1] বলছে এটি ইসি 2 তে কাজ করা উচিত নয় তবে এটি ঠিক কাজ করে বলে মনে হচ্ছে।
তারপরে আমি execকমান্ডটি এতে সামঞ্জস্য করি :
exec su - dmitry -c '/usr/bin/node /home/dmitry/node/linkskeeper/app.js 2>&1 >> /home/dmitry/app.log'
আমি নিম্নলিখিত পেতে:
$ ps aux | grep node
dmitry 28371 0.0 0.2 37952 1312 ? Ss 16:57 0:00 su - dmitry -c /usr/bin/node /home/dmitry/node/linkskeeper/app.js 2>&1 >> /home/dmitry/app.log
dmitry 28372 0.0 0.2 19516 1712 ? S 16:57 0:00 -su -c /usr/bin/node /home/dmitry/node/linkskeeper/app.js 2>&1 >> /home/dmitry/app.log
dmitry 28375 3.2 2.6 639748 15916 ? Sl 16:57 0:00 /usr/bin/node /home/dmitry/node/linkskeeper/app.js
আমি বুঝতে পারি না এখানে পিডস নিয়ে কী চলছে 28371, 28372এবং 28375। এগুলি সকলেই মালিকানাধীন dmitry, এবং তালিকাভুক্ত কমান্ডটি আমি বুঝতে পারি না 28372, যা কোনও ড্যাশ দিয়ে শুরু হয়।
আমার নোট করা উচিত যে নোড.জেএস অ্যাপ্লিকেশন দুটি অনুরোধের সাথে ঠিক কাজ করেছে।
তথ্যসূত্র: [1] https://stackoverflow.com/questions/8312171/can-i-run-node-js-with-low-privileges
-) ফেলে দেওয়া এবংsuকমান্ডটিতে একটি নতুন লগইন শেল না চাওয়ার ফলে28372উপরের প্রক্রিয়াতে প্রদর্শিত কমান্ডটি পরিবর্তিত হয়bash -c /usr/bin/node /home/dmitry/node/linkskeeper/app.js 2>&1 >> /home/dmitry/app.log, যা-su -cসিনটেক্সের চেয়ে বেশি বোঝায় যা আমি একেবারেই বুঝতে পারি না।