का उपयोग कर चल रहा है, मैंने वर्तमान में आईओएस पर सभी चल रही प्रक्रियाओं को देखने के लिए एक सरल गतिविधि मॉनिटर लागू किया है।पता लगाएं कि कौन सा ऐप वर्तमान में आईओएस पर sysctl
चल रहे सभी प्रक्रियाओं की सूची प्राप्त करने के लिए, मैं यह कर:
size_t size;
struct kinfo_proc *procs = NULL;
int status;
NSMutableArray *killedProcesses = [[NSMutableArray alloc] init];
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };
status = sysctl(mib, 4, NULL, &size, NULL, 0);
procs = malloc(size);
status = sysctl(mib, 4, procs, &size, NULL, 0);
// now, we have a nice list of processes
और अगर मैं एक विशिष्ट प्रक्रिया के बारे में अधिक जानकारी चाहते हैं, मैं करूँगा:
struct kinfo_proc *proc;
int mib[5] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pidNum, 0 };
int count;
size_t size = 0;
// ask the proc size
if(sysctl(mib, 4, NULL, &size, NULL, 0) < 0) return -1;
// allocate memory for proc
proc = (struct kinfo_proc *)malloc(size);
sysctl(mib, 4, proc, &size, NULL, 0);
सभी अतिरिक्त मैं चाहता हूं कि proc info अब proc में संग्रहीत है।
मुझे पता है कि ऐप्स ओएस द्वारा नहीं मारा जाएगा। यहां तक कि जब एक ऐप का उपयोग लंबे समय तक नहीं किया जाता है (10 मिनट से अधिक) यह प्रक्रिया सूची में रहेगा। यहां तक कि जब मैं पूछता हूं कि प्रक्रिया में "राज्य" क्या है (proc-> kp_proc.p_stat), यह "चल रहा है" देता है।
मेरा प्रश्न है: क्या किसी को यह पता लगाने के लिए कोई तरीका पता है कि कौन सा पीआईडी वर्तमान में चल रहा है/सक्रिय रूप से उपयोग किया जा रहा है (शायद: सीपीयू समय बढ़ाना? चलने का समय? सीपीयू टिक इत्यादि) ??
पहले, मैं आप के लिए एक प्रश्न है। जब p_stat का मान 2 होता है, तो इसका मतलब यह है कि यह प्रक्रिया चल रही है? जब मैं सिम्युलेटर पर चलता हूं, मैंने पाया कि कुछ प्रक्रियाओं में 5 का p_stat मान है। इसके अलावा, मैंने पाया कि टिक या सीपीयू समय के लिए सभी मान 0 हैं। ऐसा लगता है कि ये मान कभी भी डार्विन में स्टेट नहीं होते हैं। मुझे नहीं पता कि यह मुफ्त बीएसडी में समान है या नहीं। – HChen
नहीं। मान कहीं भी बदलते प्रतीत नहीं होते हैं ... इसलिए अब तक – hackerdiehack
@hackerdiehack से चलने वाली प्रक्रिया का कोई संकेत नहीं है क्या आप जानते हैं कि प्रक्रिया अग्रभूमि या पृष्ठभूमि में कब होती है? –