Немає портативної програми ps. Команда ps, доступна в Linux, як уже згадувались, є з пакету "propps". Причина, по якій це неможливо перенести в OSX, полягає в тому, що ядра Linux і OSX не розкривають цю інформацію однаково. Linux використовує псевдофайлову систему в / proc, тоді як OSX використовує функцію sysctl. Інші системи можуть використовувати будь-який механізм, але надають дані в іншому форматі, або можуть вимагати такі програми, як ps, для читання безпосередньо з пам'яті ядра.
Взагалі немає стандартів щодо того, як інформація про процес доступна для таких програм, як ps та top; тому програма повинна бути розроблена для конкретної операційної системи. Якщо в OSX PS відсутня певна функція, вам доведеться знайти іншу програму, яка може це зробити, або написати її самостійно (подивіться посібник з sysctl, зокрема KERN_PROC як вихідний пункт), або модифікуйте існуючий ps команда для додавання функції.
Крім того, якщо ви можете отримати те, що вам потрібно, проаналізувавши висновок самої команди ps, ви, можливо, зможете написати портативну програму - вихід з цією -o
опцією є досить надійним для всіх платформ, особливо якщо ви посилаєтесь на стандарт UNIX для назви стовпців для використання.
ps
абоps -ef
в терміналі на OSX? працює для мене на OSX 10.7.5 без змін, на двох різних машинах. It in / bin / ps