Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.7/FAQ

by on January 14, 2009 · 1 comment· LAST UPDATED January 10, 2014

in , ,

I am a new Unix/Linux command line bash/ksh/tcsh user. I was told to use the following ps command:

ps -auxf | sort -nr -k 4 | head -10

And I get the output along with warning message that read as follows:

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ

How do I fix this problem?

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
RequirementsNone
Estimated completion time1m
To fix this problem change your command as follows i.e remove - from ps command:

ps auxf | sort -nr -k 4 | head -10

This should fix the warning message on screen.

But why does "ps -aux" complain about a bogus '-'?

According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named "x". If that user doesn't exist, then ps will assume you really meant "ps aux". The warning is given to gently break you of a habit that will cause you trouble if a user named "x" were created. This is documented in /usr/share/doc/procps-3.2.7/FAQ file:

$ less /usr/share/doc/procps-3.2.7/FAQ
OR
$ less /usr/share/doc/procps-3.2.8/FAQ
Sample outputs:

Why does "ps -aux" complain about a bogus '-'?

According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named "x". If that user doesn't exist, then ps will assume you really meant "ps aux". The warning is given to gently break you of a habit that will cause you trouble if a user named "x" were created.

Why don't I see SMP (per-CPU) stats in top?

You didn't enable it. Press '?' for built-in help or read the man page. Per-CPU stats are disabled by default because they take up too much space. Some Linux systems have hundreds of CPUs.

Why do long usernames get printed as numbers?

The UNIX and POSIX standards require that user names and group names be printed as decimal integers when there is not enough room in the column. Truncating the names, besides being a violation of the standard, would lead to confusion between names like MichelleRichards and MichelleRichardson. The UNIX and POSIX way to change column width is to rename the column:

ps -o pid,user=CumbersomeUserNames -o comm

The easy way is to directly specify the desired width:

ps -o pid,user:19,comm

Why is %CPU underreported for multi-threaded (Java, etc.) apps?

You need to upgrade to the 2.6.10 kernel at least. Older kernels do not provide a reasonable way to get this information.

Why do ps and top show threads individually?

The 2.4.xx kernel does not provide proper support for grouping threads by process. Hacks exist to group them anyway, but such hacks will falsely group similar tasks and will fail to group tasks due to race conditions. The hacks are also slow. As none of this is acceptable in a critical system tool, task grouping is not currently available for the 2.4.xx kernel. The 2.6.xx kernel allows for proper thread grouping and reporting. To take advantage of this, your programs must use a threading library that features the CLONE_THREAD flag. The NPTL pthreads provided by recent glibc releases use CLONE_THREAD.

What systems are supported?

Linux 2.4.xx and 2.6.xx are commonly tested and expected to work well. SMP is well supported. Multi-node cluster views require a multi-node /proc filesystem; without that you will see a single-node view.

Where to I send bug reports?

You may use the Debian bug tracking system or send your report to procps-feedback@lists.sf.net (no subscription required) instead.

Why are there so many procps projects?

The original maintainer seems to have had little time for procps. Whatever his reasons, the project didn't get maintained. Starting in 1997, Albert Cahalan wrote a new ps program for the package. For the next few years, Albert quietly helped the Debian package maintainer fix bugs. In 2001, Rik van Riel decided to do something about what appeared to be the lack of a maintainer. He picked up the buggy old code in Red Hat's CVS and started adding patches. Meanwhile, other people have patched procps in a great many ways. In 2002, Albert moved procps to this site. This was done to ensure that years of testing and bug fixes would not be lost. The major version number was changed to 3, partly to avoid confusing users and partly because the top program has been redone.

Why does ps get signal 17?

No ps release has ever had this problem. Most likely your system has been broken into. You might want to install a more recent version of the OS. If you'd rather take your chances, simply upgrade procps.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 1 comment… read it below or add one }

1 O Lakshmana Rao January 10, 2014 at 2:27 pm

Thank you, I used the answer it worked.

Reply

Leave a Comment

Tagged as: , , ,

Previous Faq:

Next Faq: