আমি নোড.জেএস একটি অনিবদ্ধ ব্যবহারকারী হিসাবে চালানোর চেষ্টা করছি (এক্ষেত্রে 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
সিনটেক্সের চেয়ে বেশি বোঝায় যা আমি একেবারেই বুঝতে পারি না।