ज्यादातर मामलों में सिर्फ रनिंग psआमतौर पर पर्याप्त है, साथ ही अपने पसंदीदा झंडे के साथ विस्तृत आउटपुट को सक्षम करने के लिए। मैं ओर झुकता हूं ps -feww, लेकिन यहां अन्य सुझाव काम करेंगे। ध्यान दें कि यदि कोई कार्यक्रम किसी के द्वारा शुरू किया गया था $PATH, तो आप केवल निष्पादन योग्य नाम देख सकते हैं, पूर्ण पथ नहीं। उदाहरण के लिए, इसे आज़माएँ:
$ lftp &
$ ps -feww | grep ftp
lars 9600 9504 0 11:30 pts/10 00:00:00 lftp
lars 9620 9504 0 11:31 pts/10 00:00:00 grep ftp
यह ध्यान रखना महत्वपूर्ण है कि दिखाई देने वाली जानकारी psको चल रहे कार्यक्रम द्वारा पूरी तरह से अधिलेखित किया जा सकता है। उदाहरण के लिए, यह कोड:
int main (int argc, char **argv) {
memset(argv[0], ' ', strlen(argv[0]));
strcpy(argv[0], "foobar");
sleep(30);
return(0);
}
अगर मैं इसे "myprogram" नामक फ़ाइल में संकलित करता हूं और इसे चलाता हूं:
$ gcc -o myprogram myprogram.c
$ ./myprogram &
[1] 10201
और फिर चलाएं ps, मुझे एक अलग प्रक्रिया नाम दिखाई देगा:
$ ps -f -p 10201
UID PID PPID C STIME TTY TIME CMD
lars 10201 9734 0 11:37 pts/10 00:00:00 foobar
आप सीधे भी देख सकते हैं /proc/<pid>/exe, जो उपयुक्त निष्पादन योग्य के लिए एक सहिष्णुता हो सकती है। उपरोक्त उदाहरण में, यह आपको अधिक उपयोगी जानकारी देता है ps:
$ls -l /proc/9600/exe
lrwxrwxrwx. 1 lars lars 0 Feb 8 11:31 /proc/9600/exe -> /usr/bin/lftp
/procएक कार्यक्रम के बारे में सभी जानकारी प्रदान करेंगी,exeनिष्पादन योग्य के लिए एक लिंक होगी,cwdवर्तमान कार्यशील निर्देशिका के लिए,fdनिर्देशिका में खुली फ़ाइलों (मानक इनपुट, आउटपुट और मानक त्रुटि सहित) के लिंक शामिल हैं