On Unix ps only print an 80 char cmd line

I have 2 environment of webMethods on the same unix machine (let say test and prod)
/opt/…/webMethods/IStest and

if i do a ps command on the machine, i will see 2 process (1 for each env) but since Solaris has an 80 char long for the cmd line display, and Web method has a super long cmd line to start his server (java stuff), the ps result has 2 different pid but the same cmd line.

How can i distinguish those two pid?


I would recommend running the servers as two different user accounts (e.g., isprod and istest).

Use the UC Berkley ps instead of Sun’s. This ps is located in /usr/ucb. Use the following syntax to get the entire process printed out.

/usr/ucb/ps -auxww | grep webMethods

This will give you the entire process command line and its arguments.

This is better.

i’ve had the same problem and i used this command :

the man for this command :
ps - display the status of current processes
/usr/ucb/ps [ -aceglnrSuUvwx ] [ -t term ] [ num ]

The ps command displays information about processes. Normally, only those processes that are running with your effective user ID and are attached to a controlling terminal (see termio(7I)) are shown. Additional categories of processes can be added to the display using various options. In particular, the -a option allows you to include processes that are not owned by you (that do not have your user ID), and the -x option allows you to include processes without controlling terminals. When you specify both -a and - x, you get processes owned by anyone, with or without a controlling terminal. The -r option restricts the list of processes printed to running and runnable processes.

ps displays in tabular form the process ID, under PID; the controlling terminal (if any), under TT; the cpu time used by the process so far, including both user and system time, under TIME; the state of the process, under S; and finally, an indication of the COMMAND that is running.

The state is given by a single letter from the following:

Process is running on a processor.
Sleeping. Process is waiting for an event to complete.
Runnable. Process is on run queue.
Zombie state. Process terminated and parent not waiting.
Traced. Process stopped by a signal because parent is tracing it.
The following options must all be combined to form the first argument:

Include information about processes owned by others.
Display the command name rather than the command arguments.
Display the environment as well as the arguments to the command.
Display all processes. Without this option, ps only prints interesting processes. Processes are deemed to be uninteresting if they are process group leaders. This normally eliminates top-level command interpreters and processes waiting for users to login on free terminals.
Display a long listing, with fields F, PPID, CP, PRI, NI, SZ, RSS and WCHAN as described below.
Produce numerical output for some fields. In a user listing, the USER field is replaced by a UID field.
Restrict output to running and runnable processes.
Display accumulated CPU time used by this process and all of its reaped children.
Display user-oriented output. This includes fields USER, %CPU, %MEM, SZ, RSS and START as described below.
Update a private database where ps keeps system information.
Display a version of the output containing virtual memory. This includes fields SIZE, %CPU, %MEM, and RSS, described below.
Use a wide output format (132 columns rather than 80); if repeated, that is, -ww, use arbitrarily wide output. This information is used to decide how much of long commands to print.
Include processes with no controlling terminal.
-t term
List only process data associated with the terminal, term. Terminal identifiers may be specified in one of two forms: the device’s file name (for example, tty04 or term/14 ) or, if the device’s file name starts with tty , just the digit identifier (for example, 04).
A process number may be given, in which case the output is restricted to that process. This option must be supplied last.
Fields that are not common to all output formats:

Name of the owner of the process.
CPU use of the process; this is a decaying average over up to a minute of previous (real) time.
Process scheduling increment (see getpriority(3C) and nice(3B)).
The total size of the process in virtual memory, including all mapped files and devices, in kilobyte units.
Same as SIZE.
Real memory (resident set) size of the process, in kilobyte units.
Numerical user-ID of process owner.
Numerical ID of parent of process.
Short-term CPU utilization factor (used in scheduling).
The priority of the process (higher numbers mean lower priority).
The starting time of the process, given in hours, minutes, and seconds. A process begun more than 24 hours before the ps inquiry is executed is given in months and days.
The address of an event for which the process is sleeping (if blank, the process is running).
The ratio of the process’s resident set size to the physical memory on the machine, expressed as a percentage.
Flags (hexadecimal and additive) associated with the process. These flags are available for historical purposes; no meaning should be currently ascribed to them.
A process that has exited and has a parent, but has not yet been waited for by the parent is marked ; otherwise, ps tries to determine the command name and arguments given when the process was created by examining the user block.

Things can change while ps is running; the picture it gives is only a close approximation to the current state. Some data printed for defunct processes is irrelevant.