OnWorks Linux and Windows Online WorkStations

Logo

Free Hosting Online for WorkStations

< Previous | Contents | Next >

4.1.4. Displaying process information‌


The ps command is one of the tools for visualizing processes. This command has several options which can be combined to display different process attributes.


image

With no options specified, ps only gives information about the current shell and eventual processes:


theo:~> ps

PID TTY

4245 pts/7

5314 pts/7

TIME CMD

00:00:00 bash

00:00:00 ps

theo:~> ps

PID TTY

4245 pts/7

5314 pts/7

Since this does not give enough information - generally, at least a hundred processes are running on your system - we will usually select particular processes out of the list of all processes, using the grep command in a pipe, see Section 5.1.2.1, as in this line, which will select and display all processes owned by a particular user:


ps -ef | grep username


This example shows all processes with a process name of bash, the most common login shell on Linux systems:


image

theo:> ps auxw | grep bash


brenda

31970

0.0

0.3

6080

1556

tty2

S

Feb23

0:00

-bash

root

32043

0.0

0.3

6112

1600

tty4

S

Feb23

0:00

-bash

theo

32581

0.0

0.3

6384

1864

pts/1

S

Feb23

0:00

bash

theo

32616

0.0

0.3

6396

1896

pts/2

S

Feb23

0:00

bash

theo

32629

0.0

0.3

6380

1856

pts/3

S

Feb23

0:00

bash

theo

2214

0.0

0.3

6412

1944

pts/5

S

16:18

0:02

bash

theo

4245

0.0

0.3

6392

1888

pts/7

S

17:26

0:00

bash

theo

5427

0.0

0.1

3720

548

pts/7

S

19:22

0:00

grep bash

In these cases, the grep command finding lines containing the string bash is often displayed as well on systems that have a lot of idletime. If you don't want this to happen, use the pgrep command.


Bash shells are a special case: this process list also shows which ones are login shells (where you have to give your username and password, such as when you log in in textmode or do a remote login, as opposed to

non-login shells, started up for instance by clicking a terminal window icon). Such login shells are preceded with a dash (-).


image|?

We will explain about the | operator in the next chapter, see Chapter 5.

More info can be found the usual way: ps --help or man ps. GNU ps supports different styles of option formats; the above examples don't contain errors.


Note that ps only gives a momentary state of the active processes, it is a one-time recording. The top program displays a more precise view by updating the results given by ps (with a bunch of options) once every five seconds, generating a new list of the processes causing the heaviest load periodically, meanwhile integrating more information about the swap space in use and the state of the CPU, from the proc file system:


12:40pm up 9 days, 6:00, 4 users, load average: 0.21, 0.11, 0.03

89 processes: 86 sleeping, 3 running, 0 zombie, 0 stopped CPU states: 2.5% user, 1.7% system, 0.0% nice, 95.6% idle

12:40pm up 9 days, 6:00, 4 users, load average: 0.21, 0.11, 0.03

89 processes: 86 sleeping, 3 running, 0 zombie, 0 stopped CPU states: 2.5% user, 1.7% system, 0.0% nice, 95.6% idle


image

Mem: 255120K av, 239412K used, 15708K free, 756K shrd, 22620K buff Swap: 1050176K av, 76428K used, 973748K free, 82756K cached


PID

USER

PRI

NI

SIZE

RSS

SHARE

STAT

%CPU

%MEM

TIME

COMMAND

5005

root

14

0

91572

15M

11580

R

1.9

6.0

7:53

X

19599

jeff

14

0

1024

1024

796

R

1.1

0.4

0:01

top

19100

jeff

9

0

5288

4948

3888

R

0.5

1.9

0:24

gnome-terminal

19328

jeff

9

0

37884

36M

14724

S

0.5

14.8

1:30

mozilla-bin

1

root

8

0

516

472

464

S

0.0

0.1

0:06

init

2

root

9

0

0

0

0

SW

0.0

0.0

0:02

keventd

3

root

9

0

0

0

0

SW

0.0

0.0

0:00

kapm-idled

4

root

19

19

0

0

0

SWN

0.0

0.0

0:00

ksoftirqd_CPU0

5

root

9

0

0

0

0

SW

0.0

0.0

0:33

kswapd

6

root

9

0

0

0

0

SW

0.0

0.0

0:00

kreclaimd

7

root

9

0

0

0

0

SW

0.0

0.0

0:00

bdflush

8

root

9

0

0

0

0

SW

0.0

0.0

0:05

kupdated

9 root -1-20 0 0 0 SW< 0.0 0.0 0:00 mdrecoveryd

13

root

9

0

0

0

0

SW

0.0

0.0

0:01

kjournald

89

root

9

0

0

0

0

SW

0.0

0.0

0:00

khubd

219

root

9

0

0

0

0

SW

0.0

0.0

0:00

kjournald

220

root

9

0

0

0

0

SW

0.0

0.0

0:00

kjournald

The first line of top contains the same information displayed by the uptime command:


jeff:~> uptime

3:30pm, up 12 days, 23:29, 6 users, load average: 0.01, 0.02, 0.00

jeff:~> uptime

3:30pm, up 12 days, 23:29, 6 users, load average: 0.01, 0.02, 0.00

The data for these programs is stored among others in /var/run/utmp (information about currently connected users) and in the virtual file system /proc, for example /proc/loadavg (average load information). There are all sorts of graphical applications to view this data, such as the Gnome System Monitor and lavaps. Over at FreshMeat and SourceForge you will find tens of applications that centralize this information along with other server data and logs from multiple servers on one (web) server, allowing monitoring of the entire IT infrastructure from one workstation.


image

The relations between processes can be visualized using the pstree command:


sophie:~> pstree

init-+-amd

|-apmd

|-2*[artsd]

|-atd

|-crond

|-deskguide_apple

|-eth0

|-gdm---gdm-+-X

sophie:~> pstree

init-+-amd

|-apmd

|-2*[artsd]

|-atd

|-crond

|-deskguide_apple

|-eth0

|-gdm---gdm-+-X


|

|

|

`-gnome-session-+-Gnome

|-ssh-agent

`-true

|

|

|


|-geyes_applet

|-gkb_applet

|-gnome-name-serv

|-gnome-smproxy

|-gnome-terminal-+-bash---vim

|-geyes_applet

|-gkb_applet

|-gnome-name-serv

|-gnome-smproxy

|-gnome-terminal-+-bash---vim


|

|

|

|

|

|-gpm

|-gweather

|-kapm-idled

|-bash

|-bash---pstree

|-bash---ssh

|-bash---mozilla-bin---mozilla-bin---3*[mozilla-bin]

`-gnome-pty-helper

|

|

|

|

|

|-gpm

|-gweather

|-kapm-idled


|-3*[kdeinit]

|-keventd

|-khubd

|-5*[kjournald]

|-klogd

|-lockd---rpciod

|-lpd

|-mdrecoveryd

|-6*[mingetty]

|-8*[nfsd]

|-nscd---nscd---5*[nscd]

|-ntpd

|-3*[oafd]

|-panel

|-portmap

|-rhnsd

|-rpc.mountd

|-rpc.rquotad

|-rpc.statd

|-sawfish

|-screenshooter_a

|-sendmail

|-sshd---sshd---bash---su---bash

|-syslogd

|-tasklist_applet

|-vmnet-bridge

|-xfs

`-xinetd-ipv6

|-3*[kdeinit]

|-keventd

|-khubd

|-5*[kjournald]

|-klogd

|-lockd---rpciod

|-lpd

|-mdrecoveryd

|-6*[mingetty]

|-8*[nfsd]

|-nscd---nscd---5*[nscd]

|-ntpd

|-3*[oafd]

|-panel

|-portmap

|-rhnsd

|-rpc.mountd

|-rpc.rquotad

|-rpc.statd

|-sawfish

|-screenshooter_a

|-sendmail

|-sshd---sshd---bash---su---bash

|-syslogd

|-tasklist_applet

|-vmnet-bridge

|-xfs

`-xinetd-ipv6

Top OS Cloud Computing at OnWorks: