Trong hầu hết các trường hợp, chỉ cần chạy psthường là đủ, cùng với các cờ yêu thích của bạn để cho phép đầu ra rộng. Tôi nghiêng về phía ps -feww, nhưng những gợi ý khác ở đây sẽ hoạt động. Lưu ý rằng nếu một chương trình được bắt đầu từ một ai đó $PATH, bạn sẽ chỉ thấy tên thực thi, không phải là đường dẫn đầy đủ. Ví dụ: thử điều này:
$ 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
Điều quan trọng cần lưu ý là thông tin hiển thị trong pscó thể được ghi đè hoàn toàn bởi chương trình đang chạy. Ví dụ: mã này:
int main (int argc, char **argv) {
memset(argv[0], ' ', strlen(argv[0]));
strcpy(argv[0], "foobar");
sleep(30);
return(0);
}
Nếu tôi biên dịch nó thành một tệp có tên là "myprogram" và chạy nó:
$ gcc -o myprogram myprogram.c
$ ./myprogram &
[1] 10201
Và sau đó chạy ps, tôi sẽ thấy một tên quy trình khác:
$ ps -f -p 10201
UID PID PPID C STIME TTY TIME CMD
lars 10201 9734 0 11:37 pts/10 00:00:00 foobar
Bạn cũng có thể nhìn trực tiếp vào /proc/<pid>/exe, đây có thể là một liên kết tượng trưng để thực thi thích hợp. Trong ví dụ trên, điều này cung cấp cho bạn thông tin hữu ích hơn nhiều so với ps:
$ls -l /proc/9600/exe
lrwxrwxrwx. 1 lars lars 0 Feb 8 11:31 /proc/9600/exe -> /usr/bin/lftp
/procsẽ cung cấp tất cả thông tin về một chương trình,exesẽ là một liên kết đến thực thi,cwdthư mục làm việc hiện tại,fdthư mục chứa các liên kết đến các tệp đang mở (bao gồm đầu vào tiêu chuẩn, đầu ra và lỗi tiêu chuẩn)