ps, קיצור של process status, היא פקודה במערכות הפעלה יוניקס ודמויות יוניקס, המציגה מידע על התהליכים במערכת. הפקודה הייתה כבר חלק מהגרסה הששית של יוניקס[1] והיא כיום חלק מכמעט כל מערכת דמוית יוניקס ומתקן POSIX. (במערכות GNU/Linux היא חלק מהחבילה procps).
קשורה אליה הפקודה top, המציגה את התהליכים במערכת ברשימה שמתעדכנת מדי פרק זמן.
דוגמאות
לאחר הקלדת הפקודה ps ללא תוספת ארגומנטים כלל, יוצג מידע בסיסי על התהליכים במסוף הנוכחי.
# ps
PID TTY TIME CMD 7431 pts/0 00:00:00 su 7434 pts/0 00:00:00 bash18585 pts/0 00:00:00 ps
הצגת כל התהליכים שפועלים כמשתמש-על (root), בתצוגה שעוצבה על ידי המשתמש.
# ps-Uroot-u
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMANDroot 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --
מזהה, למשל כתובת זיכרון, לאירוע שהתהליך ממתין לו, אם קים כזה
פרוט הדגלים
ללא כל דגל מופיע פלט ה-ps בתבנית מצומצמת שמציגה את התהליכים של המשתמש הפועלים באותו מסוף. התהליכים מוצגים בשורות נפרדות, שורה לכל תהליך. בכל שורה רשום מזהה של תהליך, המסוף, זמן הריצה הכולל והפקודה שהפעילה אותו. ניתן להוסיף דגלים שונים כדי להציג מידע רב יותר.
הדגלים של ps רבים. במערכות הפעלה המממשות את התקנים של SUS ו-POSIX, ps פועלת לרוב עם הדגלים ef-, כאשר "e-" בוחר להציג את כל (every) התהליכים, ו-"f-" בוחר שיוצג כל המידע האפשרי (full). דגל נפוץ נוסף במערכות כאלו הוא l-, שמצין פורמט תצוגה ארוך (long).
מסיבות היסטוריות, רוב המערכות שנגזרות מ BSD לא תומכות בדגלים שנקבעו ב-SUS וב-POSIX בגלל התנגשויות. למשל, הדגל "e" או "e-" יציג משתני סביבה. במערכות כאלו, לרוב ps רצה עם הדגלים הלא תקניים aux, כאשר "a" מציגה את כל (all) התהליכים במסוף, כולל אלו של משתמשים אחרים. "x" מציג את כל התהליכים ללא מסוף שליטה ו-"u" (user) מוסיף עמודה של המשתמש השולט בתהליך. להתאמה מרבית, אין שימוש בתו "-" לפני הצירוף "aux". "ps auxww" מספקת מידע מלא כל כל תהליך, כולל כל הפרמטרים בשורת הפקודה.