Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a utility program called spy that enables you to do just that. spy repeatedly scans the system process table, displaying processes that have started

Write a utility program called spy that enables you to do just that.

spy repeatedly scans the system process table, displaying processes that have started or ended since the last scan. The usage of spy is this:

% spy [ list of patterns] [-t secs] [-n count]

Anything enclosed in square brackets is optional. Here's what each field means:

list of patterns:

Is a list of patterns to look out for in the process list, possibly containing regular expressions, described briefly below. If no list is present, spy accepts all processes.

tsecs:

Tells spy how many seconds to wait between each scan of the system process table. The default value is one.

count:

Tells spy how many times the system process table should be scanned before quitting. The default value is five.

During each scan, spy produces an intermediate file containing a list of current processes in the form:

User- id process-id command

which it then compares with the list constructed during the last scan. The differences between the two lists indicate which processes have ended and which have begun since the last scan. This difference is then displayed, in a readable format together with the date and time.

Here's an example of such a process list:

Bob 4286 csh spy lippke smith Bob 7949 ps -aux

Spy allows you to filter the list for patterns, possibly including regular expressions in the same form as those accepted by the LINIX utility grep.

For example the command:

% spy "^user" vi

would consider all lines in the process list containing vi or beginning with the word user. Similarly, the command:

% spy fox Bob vi -t 10 -n 100

would consider all lines in the process list that contain fox, heydari, or vi. Spy program would iterate 100 times at 10 second intervals.

Error Checking:

Your program should check for simple errors such as missing options (ie. % spy Bob -n, where -n option is used but count is not given). If an error is detected, display an appropriate message and quit. Most utilities present a usage reminder when an ill-formed command line is entered. For example the following error message is appropriate for the following command:

% spy -n missing count Parameter Usage: spy [list of patterns] [-t seconds] [-n count]

Sample Output

Here's a sample output from the spy utility, executed from a C shell owned by Bob:

Sat Jan 30 4:15:25 EST 2012 Stared: Bob 26788 csh spy chess fox -t 10 Started: Bob 27258 csh spy Started: chess 1843 -csh[chess] Started: fox 24505 -csh[fox] Started: fox 24713 vi Memo

Sat Jan 30 4:15:35 EST 2012 Ended: fox 24713 vi Memo

Sat Jan 30 4:15:45 EST 2012 Started: fox 87253 lpr Started: Smith 76532 mail

Sat Jan 30 4:15:55 EST 2012

Sat Jan 30 4:15:65 EST 2012

Note:

It is quite possible that no processes change between scans. In this case, only the time stamp is displayed, please see the last 2 output lines above.

Normally you'd execute spy in the background and redirect its output into a file.

Handling Interrupts:

You will want to create temporary files to hold the process lists between scans. If your shell is interrupted (by a Ctrl-C for example), you don't want these temporary files to be left in your directory, so ensure that interrupts are handled appropriately. You will find the built-in C shell command onintr or trap very useful for this purpose.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Learn To Program Databases With Visual Basic 6

Authors: John Smiley

1st Edition

1902745035, 978-1902745039

More Books

Students also viewed these Databases questions