The “ps” conspiracy

The first decent UNIX systems I worked with were the good old Sun 3 and Sun 4 systems of the computer science department of the University Paderborn. At that time all the machines were running SunOS 4.0 which was derived from BSD 4.2. And of course it supported the proper syntax of the ps command e.g. ps -guwx. And that is what I got used to.

When the University started deploying Solaris 2.x I was really annoyed that ps now expected System V style options. But I found /usr/ucb/ps which supported all the options I knew. All was well.

But the System V nonsense didn’t stop there unfortunately. Linux was the next victim (or offender?). ps started complaining about bad syntax at some point. This could however be fixed by setting the enviroment variable PS_PERSONALITY to bsd. I made the necessary changes to my account’s configuration and all was well.

I was however really shocked when I found out that Mac OS X Leopard had joined the conspiracy. Its ps command doesn’t accept BSD options anymore and expects System V style options instead. I personally find that highly annoying especially considering that Mac OS X is a BSD derivative.

But there is a bit of hope for BSD fans like me: if you omit the hyphen in front of the options Leopard’s ps command still accepts BSD style options. So I wrote a little script called ps which behaves like Mac OS X Tiger’s ps command. And all is well.