বেশিরভাগ ক্ষেত্রে 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);
}
যদি আমি এটি "মাইপ্রোগ্রাম" নামক কোনও ফাইলে সংকলন করে এটি চালনা করি:
$ 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
ডিরেক্টরিতে ফাইলগুলি খোলার লিঙ্কগুলি রয়েছে (স্ট্যান্ডার্ড ইনপুট, আউটপুট এবং স্ট্যান্ডার্ড ত্রুটি সহ)