मुझे पता है कि ps
का उपयोग कर प्रक्रिया के लिए मुझे PID
मिल सकता है, लेकिन उस प्रक्रिया का पूरा पथ कैसे ढूंढें?ओएस एक्स पर प्रक्रिया के लिए मुझे पूरा पथ कैसे प्राप्त होगा?
उत्तर
ओएस एक्स में libproc लाइब्रेरी है, जिसका उपयोग विभिन्न प्रक्रिया सूचनाओं को इकट्ठा करने के लिए किया जा सकता है। आदेश दिए गए पीआईडी के लिए निरपेक्ष पथ खोजने के लिए, निम्न कोड इस्तेमाल किया जा सकता:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <libproc.h>
int main (int argc, char* argv[])
{
pid_t pid; int ret;
char pathbuf[PROC_PIDPATHINFO_MAXSIZE];
if (argc > 1) {
pid = (pid_t) atoi(argv[1]);
ret = proc_pidpath (pid, pathbuf, sizeof(pathbuf));
if (ret <= 0) {
fprintf(stderr, "PID %d: proc_pidpath();\n", pid);
fprintf(stderr, " %s\n", strerror(errno));
} else {
printf("proc %d: %s\n", pid, pathbuf);
}
}
return 0;
}
उदाहरण संकलन और चलाने के लिए (ऊपर कोड pathfind.c में संग्रहीत है, 32,291 की पीआईडी है
$ cc pathfind.c -o pathfind
$ ./pathfind 32291
proc 32291: /some/path/your-binary-app
इस ब्लॉग पोस्ट का संदर्भ लें: प्रक्रिया मैं के लिए पथ जानकारी) को खोजने के लिए कोशिश कर रहा हूँhttp://astojanov.wordpress.com/2011/11/16/mac-os-x-resolve-absolute-path-using-process-pid/
एक समाधान हो सकता है उसी एनजी जो:
which `ps -o comm= -p $PID`
जहां $ पीआईडी प्रक्रिया की पिड है जिसे आप देखना चाहते हैं। ओएस एक्स 10.8.2 पर परीक्षण किया गया।
10.7.5 पर भी परीक्षण किया गया ... शानदार। – Floris
10.5 पर भी काम करता है, धन्यवाद @ टॉमिस! – AnneTheAgile
हालांकि कभी-कभी सापेक्ष पथ वापस आते हैं। यहां मैंने जो परीक्षण किया है: '$> जो \' ps -o comm = -p 81233 \ '=>।/Ft_minishell2', मेरा मतलब है, यह पूर्ण पथ में पूर्णतया नहीं है। पता नहीं है कि क्या सवाल के पीछे यह प्रारंभिक सोच थी। यह मैवरिक्स है। – conradkdotcom
इस प्रयास करें:
sudo ls -l /proc/$(ps -e | grep $PROCESS_NAME | awk '{print $1}')/exe
जहां $ PROCESS_NAME प्रक्रिया के नाम पर आप की जांच करना चाहते है।
ओएस एक्स पर कोई/proc नहीं है ... – tomis
क्या आपने 'osxfuse' के बारे में सुना है - रिपोजिटरी फाइल सिस्टम में ब्राउज़ करने, संकलित करने और निर्माण करने के लिए कई रोमांचक और उपयोगी फ़ाइल सिस्टम के लिए स्रोत कोड शामिल है, जैसे sshfs, procfs, accessibilityFS, आदि – ymn
मैंने इसके बारे में सुना है (और इसका उपयोग कर रहा है) लेकिन यह मूल रूप से वहां नहीं है ... कई उपयोगकर्ताओं ने यह इंस्टॉल नहीं किया है। – tomis
http://superuser.com/questions/103309/how-can-i-now-the-absolute-path-of-a-running-process –
संभावित डुप्लिकेट [पिड से आवेदन का वास्तविक मार्ग प्राप्त करें?] (http://stackoverflow.com/questions/7511864/get-real-path-of-plication-from-pid) – AlphaMale