পাইথনের মাধ্যমে লিনাক্সে প্রক্রিয়া তালিকা


উত্তর:


128

/procফাইল সিস্টেমটির দিকে তাকানো আইএমও এর পাঠ্য আউটপুট হ্যাক করার চেয়ে কম বাজে ps

import os
pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]

for pid in pids:
    try:
        print open(os.path.join('/proc', pid, 'cmdline'), 'rb').read().split('\0')
    except IOError: # proc has already terminated
        continue

10
Os.listdir ('/ proc') পড়ার সময় পিড ফিরে আসার সাথে সাথে আপনি একটি চেষ্টা / ব্লক ব্যতীত পড়ার কলটি ঘিরে ফেলতে হবে যখন আপনি সেমিডলাইন পড়ার সময় থাকতে পারে না।
ইয়ানামন

4
অবশেষে! বৈধতা! এখন আমি থামতে পারি! :-)
ববিন্স্স

4
পোর্টেবল না হওয়ার কারণে / প্রো-এর জন্য এবং আরও ভাল ইন্টারফেস পাওয়া যায়
শুভ ব্যক্তি ২

4
নজর রাখুন: কমান্ড লাইন 0x00 দ্বারা সমাপ্ত হয়। সাদা বর্ণমালাও একই চরিত্রের সাথে প্রতিস্থাপিত হয়।
ফেডারিকো

4
কেবল ব্যবহার করুন psutil- এটি একটি দুর্দান্ত পাইথোনিক ইন্টারফেসের মাধ্যমে এগুলি করে এবং আপনি যদি কখনও লিনাক্স-নন সার্ভারে চালনা করতে চান তবে এটি পোর্টেবল।
রিচভেল

83

আপনি একটি প্ল্যাটফর্ম স্বাধীন সমাধান হিসাবে psutil ব্যবহার করতে পারেন !

import psutil
psutil.pids()

[1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224,
268, 1215, 1216, 1220, 1221, 1243, 1244, 1301, 1601, 2237, 2355,
2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245, 
4263, 4282, 4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358, 
4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446, 5167, 5234, 5235, 
5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]


এই পর্যন্ত আনার জন্য ধন্যবাদ! ঝরঝরে প্যাকেজ
কোডকোলা

4
এটি সম্পূর্ণ প্ল্যাটফর্মটি স্বাধীন নয় - ওএসএক্স-এ আপনি অ্যাক্সেসডিনাইড ত্রুটিগুলিতে চলে যেতে পারেন: groups.google.com/forum/?fromgroups=#!topic/psutil/bsjpawhiWms
amos ২

@ এমোস কিন্ডা বোঝা যায় - প্রক্রিয়া সম্পর্কিত তথ্যের কাছে পৌঁছানোর আগে আপনি প্রথমে বিশেষাধিকার পেতে চান। ইঙ্গিতটির জন্য ধন্যবাদ।
জেএসমিথ

ওএসএক্স পয়েন্টকে প্রশস্ত করার জন্য - লিনাক্সের বিপরীতে প্রক্রিয়া সম্পর্কিত তথ্য পেতে আপনাকে ওএসএক্সের মূল অধিকারগুলির প্রয়োজন।
রিচভেল

8

আপনি তৃতীয় পক্ষের লাইব্রেরি যেমন PSI ব্যবহার করতে পারেন :

পিএসআই একটি পাইথন প্যাকেজ যা প্রক্রিয়া এবং অন্যান্য বিবিধ পদ্ধতিতে যেমন আর্কিটেকচার, বুটটাইম এবং ফাইল সিস্টেমগুলিতে রিয়েল-টাইম অ্যাক্সেস সরবরাহ করে। এটিতে একটি পাইথোনিক এপিআই রয়েছে যা সমস্ত সমর্থিত প্ল্যাটফর্মগুলির সাথে সামঞ্জস্যপূর্ণ তবে প্ল্যাটফর্ম-নির্দিষ্ট বিশদগুলিও প্রকাশিত করে যেখানে পছন্দসই।


4
পিএসআই সর্বশেষ ২০০৯ সালে আপডেট হয়েছিল, যেখানে এই মাসেই (নভেম্বর 2015) স্যুইটিল আপডেট করা হয়েছিল - মনে হয় পিউজিল আরও ভাল বাজি।
রিচভেল

7

শিশু প্রক্রিয়াগুলি তৈরি এবং ব্যবহারের অনুমোদিত উপায় হ'ল সাবপ্রসেস মডিউলটি।

import subprocess
pl = subprocess.Popen(['ps', '-U', '0'], stdout=subprocess.PIPE).communicate()[0]
print pl

কমান্ডটি আর্গুমেন্টগুলির একটি অজগর তালিকায় বিভক্ত হয়ে গেছে যাতে এটি শেলের মধ্যে চালানোর প্রয়োজন হয় না (ডিফল্টরূপে সাবপ্রসেসি P পোপেন কোনও ধরণের শেল পরিবেশ ব্যবহার করে না এটি কেবল এটি চালায়)। এর কারণে আমরা পোপেনকে কেবল 'PS -U 0' সরবরাহ করতে পারি না।


0

আমি উপযুক্ত বিকল্পগুলি দিয়ে কমান্ডটি কার্যকর করতে সাবপ্রসেস মডিউলটি ব্যবহার করব ps। বিকল্পগুলি যুক্ত করে আপনি কোন প্রক্রিয়াগুলি দেখছেন তা সংশোধন করতে পারবেন। এসওতে সাব-প্রসেসির উপর প্রচুর উদাহরণ। এই প্রশ্নের উত্তর দেয় কীভাবে আউটপুট পার্স করা যায়ps উদাহরণস্বরূপ :)

উদাহরণস্বরূপ উত্তরগুলির মধ্যে একটি হিসাবে সিস্টেমের তথ্য অ্যাক্সেস করতে PSI মডিউলটিও ব্যবহার করতে পারেন (যেমন এই উদাহরণের প্রক্রিয়া সারণী )।


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