Çoğu durumda sadece yayın yapmak ps
, genellikle geniş çıktılar elde etmek için favori bayraklarınızla birlikte yeterlidir. Doğru eğildim ps -feww
, ancak buradaki diğer öneriler işe yarayacak. Bir program birinin programından çıkarılmışsa, $PATH
tam yolu değil yalnızca çalıştırılabilir adını göreceğinizi unutmayın. Örneğin, şunu deneyin:
$ 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
Çalışan program tarafından görünen bilgilerin tamamen üzerine yazılabileceğini not etmek önemlidir . Örneğin, bu kod:
int main (int argc, char **argv) {
memset(argv[0], ' ', strlen(argv[0]));
strcpy(argv[0], "foobar");
sleep(30);
return(0);
}
Bunu "myprogram" adlı bir dosyada derleyip çalıştırırsam:
$ gcc -o myprogram myprogram.c
$ ./myprogram &
[1] 10201
Ve sonra çalıştırın ps
, farklı bir işlem adı göreceğim:
$ ps -f -p 10201
UID PID PPID C STIME TTY TIME CMD
lars 10201 9734 0 11:37 pts/10 00:00:00 foobar
Ayrıca /proc/<pid>/exe
, doğrudan uygulanabilir dosyaya bakabilir ve bu da uygun yürütülebilir dosyaya bir bağlantı olabilir. Yukarıdaki örnekte, bu size aşağıdakilerden çok daha fazla yararlı bilgi verir ps
:
$ls -l /proc/9600/exe
lrwxrwxrwx. 1 lars lars 0 Feb 8 11:31 /proc/9600/exe -> /usr/bin/lftp
/proc
bir program hakkında tüm bilgileri sağlayacak,exe
çalıştırılabilir,cwd
mevcut çalışma dizinine bir link olacak ,fd
dizin açık dosyalara bağlantılar (standart giriş, çıkış ve standart hata dahil) içerir