Tôi bắt đầu mousepad từ vỏ:
mousepad &
[1] 24289
kiểm tra xem nó đến từ đâu:
which mousepad
/usr/bin/mousepad
bắt đầu nó với đường dẫn:
/usr/bin/mousepad &
xem qua ps:
ps v -C mousepad
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
24289 pts/3 S 0:00 3 62 85441 10964 1.0 mousepad
24292 pts/3 S 0:00 0 62 85433 10864 1.0 /usr/bin/mousepad
Như chúng ta thấy, một cái được gọi không có đường dẫn được hiển thị mà không có đường dẫn, và bắt đầu với PATH, và do đó được tìm thấy bởi
which mousepad
Đơn giản như vậy phải không? Chờ đợi! Nếu tôi bắt đầu mousepad từ menu thì sao? Chà, nó có thể được chỉ định có hoặc không sử dụng cài đặt PATH. Tôi đã thử. Một khởi đầu bình thường dẫn đến một 'mousepad' đơn giản ps v -C
. Vì ~ / bin là phần đầu tiên trong PATH của tôi, tôi tạo ra một hình nộm ở đó, và, voila, hình nộm được bắt đầu từ menu.
Nhưng nếu bạn bắt đầu một chương trình tự xóa thì sao? Mà sẽ không tìm thấy chương trình đã xóa và báo cáo sai, nếu có một thứ hai trong đường dẫn.
Vì vậy, đó là một điều kiện cuộc đua. Nếu bạn biết rằng các chương trình của bạn không tự xóa hoặc không di chuyển trong khi bạn đang điều tra vị trí của chúng ps v -C NAME
và which NAME
sẽ hoạt động khá tốt.
ps -C xmms
sẽ làm cho grep của bạn trở nên lỗi thời.